我有一个带有@Value注释日期字段的A类,将当前日期作为默认值。
当我在XML文件中创建bean时,此字段似乎使用当前日期初始化,如预期的那样。
当我在测试类的main中创建一个带有新A()的新对象时,该字段为空。
我的问题是@Value是如何工作的。在文档中,它说它为字段提供了一个默认值,但是它是否仅适用于bean?它是如何处理的?
答案 0 :(得分:2)
使用XML文件创建bean 时,Spring会创建bean并应用已配置字段的注入,通过XML配置或通过注释进行修饰,例如: @Autowired
,@Value
等等......
使用new YourClass
创建bean时,您手动创建类的实例,因此Spring不会处理它。
如果您希望Spring处理按需创建的新bean,即使用new
关键字,您可以使用@Configurable
引用Spring injecting or autowiring datasource bean to class,第3点和底部的说明。