我试图从XML配置转移,并且对于相当于什么感到困惑
<spring:property name="beanName" ref="beanToReference">
我认为它与@Value("${Property.Value}")
注释
非常感谢任何帮助!
答案 0 :(得分:0)
你可以像这样引用它:
@Bean
MyAnotherBean myAnotherBean() {
return new MyAnotherBean();
}
@Bean
MyBean myBean(MyAnotherBean beanToReference) {
final MyBean myBean = new MyBean();
myBean.setAnotherBean(beanToReference);
return myBean;
}
或者像这样(如果两个bean在同一个配置类中):
@Bean
MyAnotherBean myAnotherBean() {
return new MyAnotherBean();
}
@Bean
MyBean myBean() {
final MyBean myBean = new MyBean();
myBean.setAnotherBean(myAnotherBean());
return myBean;
}
答案 1 :(得分:0)
让我们假设您有两个像这样的bean
@Compenent
public class SampleBeanOne{
}
@Compenent
public class SampleBeanTwo{
}
并且您希望像在主要组件中的xml文件中定义一样使用它们
@Compenent
public class MainComponent{
@Autowired
private SampleBeanOne sampleBeanOne;
@Autowired
private SampleBeanTwo sampleBeanTwo;
}
首先,您应该启用像这样的@Autowired注释
<beans
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
</beans>
启用注释注入后,可以在属性,设置器和构造函数上使用自动装配。
默认情况下,Spring按类型使用@Autowired。如果您有多个相同类型的bean,框架将抛出一个异常,指示有多个bean可用于自动装配。解析你可以使用@Qualifier注释。
Spring使用bean名称作为默认限定符值,因此如果你这样使用它:
@Autowired
private SampleBeanOne myBean;
它假定您拥有SampleBeanOne的MyBean实现并尝试将其注入组件构造中。