2016-02-29 84 views
0

我需要爲Spring組件自動掃描定義一個根包。package-info.java用於Spring組件掃描

我不喜歡將包名稱定義爲非類型安全字符串的方法。目前我在我的包的根目錄中添加了人工空的Scannable標記界面,並以類型安全的方式在Spring @ComponentScan註釋中使用它。

但是爲了同樣的目的,可以在@ComponentScan註釋中以某種方式使用package-info.java

回答

0

Java中沒有語法可以讓你自己直接引用一個對象Package,所以對你的問題的簡短回答是

您不能使用package-info.java以確保編譯時安全的方式引用包。您只能直接引用Class對象並通過該對象獲取其包。而且你也不能將類放入package-info.java,因爲名爲package-info.java的java源文件應至少包含一個名爲package-info的類(如果有的話),但這也是不可能的,因爲1)不允許-作爲java標識符字符; 2) package是java中的保留關鍵字,按照Java Language Specification

在這種情況下使用佔位符類或接口是適當的解決方案,它爲您提供在這種情況下可以實現的最大保證。