1 spring-context 模块概要
该模块主要实现在spring-beans 模块的扩展,主要对aop支持及el表达式的实现
分析示例
public static void main(String[] args){
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-aop.xml");
TestBean testBean = (TestBean) context.getBean("testBean");
testBean.test();
System.out.println(testBean);
}
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"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
<aop:aspectj-autoproxy proxy-target-class="false"/>
<bean id="testBean" class="com.xie.java.aop.TestBean"/>
<bean id="aspectJTest" class="com.xie.java.aop.AspectJTest"/>
</beans>
从ClassPathXmlApplicationContext 入手,先看下该类的继承结构
2 applicationcontext 初始化
从上面来看该类继承还是非常复杂的,不管怎么样,先从调用的地方入手
public ClassPathXmlApplicationContext(String configLocation) throws BeansException {
this(new String[] {
configLocation}, true, null);
}
public ClassPathXmlApplicationContext(String... configLocations)