请处理这个基本问题。
我曾经使用@Autowired注释,其中属性(类变量)可以使用该类的键/值格式赋予值。
<bean id="class" class="a.b.c.Class" lazy-init="true">
<property name="var1" value="${var1}" />
</bean>
我将Class更改为带有组件扫描选项的@Component,它不需要自动装配。我现在如何添加属性变量?
另外,在编写Junits时我不想遇到麻烦。
谢谢,
答案 0 :(得分:4)
如果您正在考虑属性文件中的属性,请查看@PropertySource
和@Value
注释。
@Component
@PropertySource("classpath:myProps.properties")
public class MyComponent {
@Value("${some.property}")
private String valueFromProperty;
// You can also use environment
@Autowired
private Environment env;
public void someMethod() {
String prop = env.getProperty("some.property");
MyBean bean = new MyBean();
bean.setProp(prop);
return bean;
}
}
答案 1 :(得分:0)
在参考文献(Chapter 4. IoC container)中查看Spring的@Value注释。
应加载属性:
<beans>
<context:property-placeholder location="classpath:/com/acme/your.properties"/>
</beans>