@ConfigurationProperties(prefix=”author”) 没有指定classpath时,IDEA提示没有找到classpath。
在浏览器中访问的结果是null 0是由于在没指定路劲的情况下,默认在resource下的applications.properties中查找,如果找到则返回值,如果没有找到则返回默认值null/0/false…
分析
- 出现spring boot Configuration Annotation Proessor not found in classpath的提示是在用了@ConfigurationProperties这个注解时,所以问题出现在ConfigurationProperties注解。
- 根据提示的not found in classpath,查询此注解的使用关于怎么指定classpath,进而查询location,spring boot1.5以上版本@ConfigurationProperties取消location注解
- 解决方案:
在配置类中采用@Component的方式注册为组件,然后使用@PropertySource来指定自定义的资源目录.(本人测试用@Service代替@Component也可以的)
有以下三种解决方案:
第一种:在resource中创建author.properties,并指明@PropertySource(“author.properties”) ,即默认在resource下找此文件,找到返回一个值,找不到则报错,报文件找不到,打不开。
第二种: 在resource下创建config文件夹,把author.properties放在config下,访问方式为:@PropertySource(“classpath:config/book.properties”)
第三种: 直接写在application.properties中(不建议这么做,但如果时全局变量提倡这种方法),当写在此文件中时,不需要指明资源文件路劲,只需要指明前缀即可。如下: