1.Spring是開源輕量級框架java
2.Spring核心兩個部分node
(1)aop:面向切面編程,擴展功能不能修改源代碼。web
(2)ioc:控制反轉,不須要new對象交給Spring配置。spring
3.Spring是一站式框架編程
Spring在java三層結構中分別提供不一樣的解決技術。設計模式
1.把對象的建立交給Spring進行管理數組
2.ioc操做:服務器
(1) ioc配置文件session
(2) ioc註解框架
1.使用技術
(1)xml配置文件
(2)dom4j解析xml
(3)工廠設計模式
(4)反射
2.圖解
// 建立saxReader對象 SAXReader reader = new SAXReader(); // 經過read方法讀取一個文件 轉換成Document對象 Document document = reader.read(new File("src/dom4j/sida.xml")); //獲取根節點元素對象 Element node = document.getRootElement(); //遍歷全部的元素節點 listNodes(node); // 獲取元素節點中,子節點名稱爲bean元素節點。 Element element = node.element("bean"); //獲取element的id屬性節點對象 Attribute attr = element.attribute("id"); //獲取element的class屬性節點對象 Attribute attr = element.attribute("class");
第一步:導入jar包
(1)解壓資料zip文件
jar特色:都有三個jar包
(2)作Spring最基本功能的時候,導入核心的四個jar包就能夠了。
(3)導入支持日誌輸出的jar包。
第二步:建立類,在類裏面建立方法。
第三步:建立Spring配置文件,配置建立類。
1.Spring 引入schema約束,把約束文件寫到eclipse裏面。
(1)複製約束的路徑
1.在Spring裏面經過配置文件建立對象。
2.bean實例化三種方式實現
第一種:使用類的無參數構造建立。
(類裏面沒有無參構造,則會異常。)
第二種:使用靜態工廠建立。
(1)建立靜態的方法,返回類對象。
第三種:使用實例化工廠建立。
(1)建立不是靜態的方法,返回類對象。
(1)id屬性:起名稱,id屬性值能夠任意命名。
(2)class屬性:建立類所在的全路徑。
(3)name屬性:功能和id屬性同樣,能夠使用特殊字符(stuts1遺留問題)
(4)scope屬性
建立對象時,向類裏的屬性設置值。
屬性注入方式(三種)
(1)使用set方法注入
(2)使用有參構造方法注入
(3)使用接口方法注入
在Spring框架裏面,支持前兩種方式。
(1)使用set方法注入
(2)使用有參構造方法注入
1.建立service類和dao類
(1)在service獲得dao類
2.具體實現過程
(1)在service裏把dao做爲類型屬性
(2)生成dao類型屬性的set方法
(3)配置文件中注入關係
1.數組
2.list集合
3.map集合
4.properties
(1)IOC:控制反轉,把對象建立交給Spring。
(2)DI:依賴注入,向類裏面屬性設置值。
(3)關係:依賴注入不能單獨存在,須要在IOC基礎之上完成操做。
1.加載spring核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
(1)new對象,功能能夠實現,可是效率很低。
2.實現思想:把加載配置文件和建立對象過程,在服務器啓動的時候完成。
3.實現原理
(1)ServletContext對象
(2)監聽器
(3)具體使用
在服務器啓動時候,爲每一個項目建立一個ServletContext對象。
在ServletContext對象建立的時候,使用監聽器能夠監聽到ServletContext對象是在何時建立。
使用監聽器監聽到ServletContext對象建立時候。
加載Spring配置文件,把配置文件裏的配置對象進行建立。
把建立出來的對象放到ServletContext域對象裏面(setAttribute方法)。
獲取對象時候,到ServletContext域獲得(getAttribute方法)。