0

我有一种情况,我试图弄清楚为什么会这样。场景是我有一个 A 类,它实现了 Web 服务公开的操作。对于操作的每个请求,都会创建一个新的 A 实例。整个事情是由 Spring 在内部管理的,我不确定 Web 服务实例化的 A 类到底是如何的。

现在我有一个类变量,我想在运行时通过

@Value("${someValue}") 字符串 someVariable

someValue 被定义为系统属性。但是创建的每个 bean 都将 someVariable 设置为 NULL。

我在同一个包中用@Configuration 注释的另一个类中尝试了同样的事情,它可以很好地解析变量。

所以,我想通过@Value注入的能力是否取决于创建bean的方式,如@Component、@Configuration-@Bean、XML定义

4

1 回答 1

0

并不真地。实际上,您可以在组件扫描 bean 和 xml 定义 bean 中使用 @Value 注入值。但请注意这一点,这取决于您放入哪个 xml 文件Placeholder,它仅在每个容器中有效。比如你把它放在applicationContext中,那么在xxx-servlet.xml中创建的bean就不能用@Value注入值。

于 2013-03-28T07:11:57.847 回答