springmvc学习指南 之第39篇 @Configuration注解

@Configuration这个单词的字面是配置的意思,那么他放在类上,就是一个配置类

//这个类将设置为配置类,相当于一个配置文件aplicationContext.xml这个文件
@Configuration
public class AppConfig {
    /**
     *  相当于一个bean标签
      */
    //相当于添加了如下的配置
//<bean id="articleDAO" class="com.st.dao.IArticleDAO">
    @Bean
    public IArticleDAO articleDAO(){
        return new ArticleDAO();
    }
    @Bean(autowireCandidate = false)
    public IArticleDAO articleDAO_other(){
        return new ArticleDAO_other();
    }

    @Bean
    public IAutorDAO autorDAO(){
        return new AuthorDAO();
    }
    @Bean(autowire = Autowire.BY_TYPE)
    public ArticleService articleService(){
        ArticleService articleService = new ArticleService();
//        articleService.setArticleDAO(articleDAO());
//        articleService.setAutorDAO(autorDAO());
        return articleService;
    }
}

这个要和xml的配置方式对应,就相当于applicationContext.xml,这个是容器的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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">
    <!-- 注册accountDAO -->
    <bean id="accountDAO" class="com.zyt.xml.demo1.dao.AccountDAO">
    </bean>
    <!-- 注册accountService -->
    <bean id="accountService" abstract="false" lazy-init="true" class="com.zyt.xml.demo2.service.AccountService" autowire="byType">
        <!-- 给accountService注入属性accountDAO -->
<!--        <property name="accountDAO" ref="accountDAO"/>-->
    </bean>
     <!-- mysql-dao -->
    <bean id="mysqlDAO" autowire-candidate="true" class="com.zyt.xml.demo2.dao.impl.AccountDAO_mysql"/>
     <!-- oracle-dao -->
    <bean id="oracleDAO" primary="true" class="com.zyt.xml.demo2.dao.impl.AccountDAO_oracle"/>
    <bean init-method="init" destroy-method="destroy" class="com.zyt.xml.demo2.dao.impl.OtherUtil"/>
</beans>

同时可以看到,applicationContext.xml中有一个<bean>标签,那么就是@Bean注解 实现的功能是一致的

由此可涉及,以后看到spring注解 都要试图寻找对应的xml实现标签,二者对应才能更好的理解springmvc

原文地址:https://www.cnblogs.com/zytcomeon/p/15702356.html