2

请处理这个基本问题。

我曾经使用@Autowired 注释,其中可以使用该类的键/值格式为属性(类变量)赋予一个值。

<bean id="class" class="a.b.c.Class" lazy-init="true">
        <property name="var1" value="${var1}" />
</bean>

我将 Class 更改为带有不需要自动装配的组件扫描选项的 @Component。我现在如何添加属性变量?

另外,我不想在编写 Junits 时遇到麻烦。

谢谢,

4

2 回答 2

5

如果您正在考虑属性文件中的属性,请签出@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;
    }
}
于 2013-04-16T06:46:00.027 回答
0

查看参考中的 Spring 的 @Value 注释(第 4 章。IoC 容器)。

应加载属性:

<beans>
   <context:property-placeholder location="classpath:/com/acme/your.properties"/>
</beans>
于 2013-04-16T06:45:30.260 回答