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);
}
}
註釋中看出這是很老的一段代碼,有興趣的一定要好好研究一下代碼