spring太多了,主要讲讲开发中常用的吧,分2个部分,ioc,aop;分开来说,白话一点,写的比较乱,总结性文字偏多,具体还请查看spring源码。
1.ioc
IoC(Inversion of Control)控制反转,只能说是神器(把控制权从具体业务对象手中转交到平台或者框架中,说白了使整个项目结构更清晰,各司其职),对象创建责任的反转,在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。
spring中有三种注入方式,一种是set注入,一种是接口注入,另一种是构造方法注入。
我们在使用的时候,主要讲dao层实例配置到bean.xml中、或扫描相关组件包,spring容器默认创建单例的bean,所以就不需要做单例处理了。
spring已经为我们实现了很多装bean的容器,只是容器的材质不同,BeanFactory、ApplicationContext比较常用。2者区别,说白了BeanFactory是ioc容器的基本实现形式,ApplicationContext则比较高级。
从一个简单的容器讲讲吧:XmlBeanFactory
public class XmlBeanFactory extends DefaultListableBeanFactory {
private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this);
public XmlBeanFactory(Resource resource) throws BeansException {
this(resource, null);
}
public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException {
super(parentBeanFactory);
this.reader.loadBeanDefinitions(resource);
}
}
注释中看出这是很老的一段代码,有兴趣的一定要好好研究一下代码