这是我使用的旧方式
<bean id="mybean" class="commodel.MyBean" init-method="init">
<property name="userDao" ref="userModule"></property>
<property name="myEmailid" value="${bean.email}"></property>
</bean>
在Java类我正在使用
MyBean myBean = (MyBean) SpringContextManager.getInstance().fetchBean("mybean");
但我使用最新的Spring版本如何使用注释初始化bean?
答案 0 :(得分:2)
@Component("myBean")
public class MyBean {
@Autowired
private UserDao userDao;
@Value("${bean.email}")
private String myEmailid;
}
您可以删除context.xml中的bean声明并添加以下内容以启用自动检测
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config />
<context:component-scan base-package="commodel" />
</beans>
如果从另一个bean访问MyBean,只需使用@Autowired注入它。
如果从POJO访问MyBean,则可以通过ApplicationContext获取实例。