Spring复习:(58)<context:annotation-config/>的作用
引入如下的BeanPostProcessor
• ConfigurationClassPostProcessor
• AutowiredAnnotationBeanPostProcessor
• CommonAnnotationBeanPostProcessor
• PersistenceAnnotationBeanPostProcessor
• EventListenerMethodProcessor
如果xml文件配置了bean中使用了@Autowired注解,则需要添加,否则不会进行注入。
package cn.edu.tju.domain;import org.springframework.stereotype.Component;@Component
public class Ear {
}
package cn.edu.tju.domain;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class Person {private int age;private String name;@Autowiredprivate Ear ear;public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Ear getEar() {return ear;}public void setEar(Ear ear) {this.ear = ear;}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><context:annotation-config/><!-- <context:component-scan base-package="cn.edu.tju.domain"/>--><bean id="ear" class="cn.edu.tju.domain.Ear"/><bean id="person" class="cn.edu.tju.domain.Person"/></beans>
package cn.edu.tju.test;import cn.edu.tju.domain.Person;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ConfigurationClassPostProcessor;
import org.springframework.context.support.ClassPathXmlApplicationContext;import java.sql.SQLException;public class Test07 {public static void main(String[] args) throws Exception {ConfigurableApplicationContext ctx = newClassPathXmlApplicationContext("spring7.xml");Person person = ctx.getBean(Person.class);System.out.println(person.getEar());//ConfigurationClassPostProcessor bean = ctx.getBean(ConfigurationClassPostProcessor.class);//System.out.println(bean);}
}
<context:component-scan base-package=“xxx.xxx”/> 包含了的功能