为什么在基于注解的Spring app中@Value默认值被解析为null?

ca1c2owp  于 5个月前  发布在  Spring
关注(0)|答案(1)|浏览(48)

在我的类中,我有两个私有字段,它们是通过@Value注解预先填充的。尽管值从.properties文件中正确读取,但如果在.properties文件中没有设置,则永远不会应用其默认值。
我尝试创建PropertySourcesPlaceholderConfigurer bean并指定文件的位置:“classpath:application.properties“。这些是我的属性:

@Value("${year:2019}")
private Integer year;

字符串
资源/application.properties:

year=


当设置年份时,year会收到正确的值。如果它仍然为空,我希望设置默认值(2019),但它仍然为null。
Spring版本:5.1.8.RELEASE

o0lyfsai

o0lyfsai1#

它是null,因为你的属性文件将它设置为空。如果你从属性文件中删除year=,你应该得到默认值。

相关问题