簡體   English   中英

使用Java Annotation不運行方法

[英]Use Java Annotation not to run a method

我的課程中只有一個方法用於測試目的:

private void printOut(String msg, Object value)
{
    System.out.println(msg + value);
}

它是System.out.println()的包裝方法;

所以我希望,通過使用Annotation,我可以選擇不在生產環境中運行此方法,同時如果我要切換回調試環境,仍然保持這些診斷輸出准備就緒。

我應該在方法名稱之上放置哪個注釋?

如上所述,您應該使用日志記錄。 以下是在應用程序中使用日志記錄的一些好處:

  • 日志記錄可以生成有關應用程序操作的詳細信息。
  • 一旦添加到應用程序,日志記錄不需要人為干預。
  • 應用程序日志可以在以后保存和研究。
  • 如果足夠詳細且格式正確,應用程序日志可以提供審計跟蹤。
  • 通過捕獲可能未向用戶報告的錯誤,日志記錄可以幫助支持人員進行故障排除。
  • 通過捕獲非常詳細和程序員指定的消息,日志記錄可以幫助程序員進行調試。
  • 日志記錄可以是調試器不可用的調試工具,多線程或分布式應用程序通常就是這種情況。
  • 日志記錄保留在應用程序中,可以在應用程序運行時隨時使用。

閱讀更多關於登錄的信息

java中有很多日志框架:

  1. Log4j的
  2. java.util.logging中
  3. Logback

還有幾個外觀,它們為各種日志框架提供了抽象:

  1. SLF4J
  2. 共享記錄

一種解決方案是使用AspectJ來執行此操作,因為您可以基於注釋控制行為。

這是一個關於如何使用注釋作為連接點的教程:

http://www.eclipse.org/aspectj//doc/next/adk15notebook/annotations-pointcuts-and-advice.html

你能做的是:

@DebugMessage
private void printOut(String msg, Object value)
{ }

然后,在您的方面,您可以讓方面執行println調用。

這樣,在生產中,方面不包括在內,但是,如果您需要將此方法設置為活動,那么只需添加方面,甚至是生產代碼,以獲得一些調試。

您應該遵循uthark的建議並使用日志框架。

那些是專為這種情況而設計的。

做一些“時髦”的事情可能會在以后引起問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM