0

我有一个 A 类,其日期字段用 @Value 注释,以将当前日期作为默认值。

当我在 XML 文件中创建一个 bean 时,这个字段似乎是用当前日期初始化的,正如预期的那样。

当我在测试类的 main 中使用 new A() 创建一个新对象时,该字段为空。

我的问题是@Value 是如何工作的。在文档中,它说它为字段提供了默认值,但它仅适用于 bean 吗?它是如何处理的?

4

1 回答 1

2

使用 XML 文件创建 bean 时,Spring 创建 bean 并应用配置字段的注入,通过 XML 配置或通过注解装饰,例如@Autowired@Value等...

使用 创建 bean 时new YourClass,您将手动创建该类的实例,因此 Spring 不会处理。

如果您希望 Spring 处理按需创建的新 bean,即 usingnew关键字,您可以参考Spring injectioning or autowiring datasource bean to class,第 3 点和底部的说明 using @Configurable

于 2013-11-02T14:01:16.363 回答