如何使用Annotation初始化Spring4中的任何类?

时间:2014-05-24 11:00:12

标签: java spring

这是我使用的旧方式

<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?

1 个答案:

答案 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获取实例。