使用@Component和@Autowired时的Spring bean原始属性?

时间:2011-03-29 04:11:38

标签: java spring

如何为bean的原始属性设置值?

由于我们有@Component注释,@Autowired注释也用于绑定实例依赖,那么基本属性呢?

@Component
class Person{
@Autowired
Address address;

int age /// what about this one?
}

2 个答案:

答案 0 :(得分:4)

对于基元,您可以使用@Value注释。通常情况是让PropertyPlaceholderConfigurer加载属性文件中的值,然后@Value("${property.key}")

您还可以将您的值定义为bean,这是更老的学校:

<bean id="foo" class="java.lang.Integer" factory-method="valueOf">
    <constructor-arg value="20" />
</bean>

然后

@Autowired
@Qualifier("foo")
private int foo;

答案 1 :(得分:2)

我尝试了Bozho建议的第二种方法。它似乎不起作用。

下面的一个正在运作。 将bean定义为:

<bean id="foo" class="java.lang.Integer" factory-method="valueOf">
     <constructor-arg value="20" />
</bean>

然后

@Autowired
@Qualifier("foo")
private java.lang.Integer foo;

OR

@Autowired
private java.lang.Integer foo;