Spring 源码学习(一)
工作好多年了,越来越心浮气躁了,好多东西都是一知半解的,所以现在需要静下心来好好学习一门技术。
就选Spring了, spring 设计java 开发的方方面面。
期待目标 对Spring 有个更深层次的理解,理解Spring中使用的设计模式。
开始了。
ApplicationContext 是Spring的IOC容器。所有的对象都需要从IOC容器中获取,所以ApplicationContext的作用非常的重要。
文件加载方式初始化的两个实现类
FileSystemXmlApplicationContext
ClassPathXmlApplicationContext
注解方式实现的
AnnotationConfigApplicationContext
通过IOC容器获取实例Bean的两种方式
1. byName
2. byType
自动装配也有两种方式
1. byName
2. byType
bean属性配置的继承,表示的是配置被继承
abstract 为 true 说明 bean id="parent" 的bean不能够被实例化
deponds-on 设置前置依赖的bean
<beans> <bean id="parent" abstract="true" class="example.ComplexObject"> <property name="adminEmails"> <props> <prop key="administrator">administrator@example.com</prop> <prop key="support">support@example.com</prop> </props> </property> </bean> <bean id="child" parent="parent"> <property name="adminEmails"> <!-- the merge is specified on the child collection definition --> <props merge="true"> <prop key="sales">sales@example.com</prop> <prop key="support">support@example.co.uk</prop> </props> </property> </bean> <beans>
属性文件外置:
PropertyPlaceholderConfigurer
<context:property-placeholder location="classpath:com/foo/jdbc.properties"/>
加载外置配置文件