@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