引入如下的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;
@Autowired
private 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/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://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 = new
ClassPathXmlApplicationContext("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”/> 包含了的功能