@ConfigurationProperties(prefix =“author”)沒有指定classpath時,IDEA提示沒有找到classpath。
在瀏覽器中訪問的結果是null 0是由於在沒有指定路勁的情況下,默認在資源下的applications.properties中查找,如果找到則返回值,如果沒有找到則返回默認值null / 0 / false ...
分析
- 出現spring boot配置註解在classpath中沒有找到教授的提示是在用了@ConfigurationProperties這個註解時,所以問題出現在ConfigurationProperties註解。
- 根據提示的classpath中找不到,查詢此註解的使用關係怎麼指定classpath,進而查詢location,spring boot1.5以上版本@ConfigurationProperties取消位置註解
- 解決方案:
在配置類中採用@Component的方式註冊爲組件,然後使用@PropertySource來指定自定義的資源目錄(本人測試用@Service代替@Component也可以的)。
有以下三種解決方案:
第一種:在資源中創建author.properties,並指明@PropertySource(“author.properties”),即默認在資源下找此文件,找到返回一個值,找不到則報錯,報文件找不到,打不開。
第二種: 在資源下創建的配置文件夾,把author.properties放在配置下,訪問方式爲:@PropertySource(“類路徑:配置/ book.properties”)
第三種: 直接寫在application.properties中(不建議這麼做,但如果時全局變量提倡這種方法),當寫在此文件中時,不需要指明資源文件路勁,只需要指明前綴即可。如下: