教程視頻(https://www.boxuegu.com/course/free/detail/?id=169)
spring的概念
1.spring是開源的輕量級框架
2.spring核心主要兩部分
(1)aop:面向切面編程腻窒,擴展功能不是修改源代碼實現(xiàn)。
(2)ioc:控制反轉(zhuǎn)
比如有一個類,在類里面有方法(不是靜態(tài)方法),調(diào)用類里面的方法袁勺,創(chuàng)建類的對象,使用對象調(diào)用方法畜普,創(chuàng)建類對象的過程期丰,需要new出來對象-ioc就是 把對象的創(chuàng)建不是通過new方式實現(xiàn),而是交給spring配置創(chuàng)建類對象吃挑。
3.spring是一站式框架
(1)spring在javaee三層結(jié)構(gòu)中钝荡,每一層都是提供不同的解決技術(shù)。
-web層:springMVC
-service層:spring的ioc
-dao層:spring的jdbcTemplate
spring的ioc操作
1.把對象的創(chuàng)建交給spring進行管理
2.ioc操作兩個部分
(1)ioc的配置方式方法
(2)ioc的注解方式
.ioc底層原理
1.ioc底層原理使用技術(shù)
(1)xml配置文件
(2?)dom4j解決xml
(3?)工廠設(shè)計模式
(4)反射
2.畫圖分析ioc實習原理
.IOC入門案例
第一步 導入jar包
第二步 創(chuàng)建類舶衬,在類里面創(chuàng)建方法
第三步 創(chuàng)建spring配置文件埠通,配置創(chuàng)建類
(1)spring核心配置文件名和位置不是固定的 建議放到src下面(官方建議名字applicationConext.xml)
(2)引入schema約束??
(3)配置對象創(chuàng)建
第四步 寫代碼測試對象創(chuàng)建
(1)這段代碼在測試中使用
.配置文件沒有提示問題
1.spring引入schema約束,把約束文件引入到eclipse中
(1)復制約束路徑
.Spring的bean管理(xml方式)
.Bean實例化的方式
1.在spring里面通過配置文件創(chuàng)建對象
2.bean實例化三種方式實現(xiàn)
第一種 實用類的無參數(shù)構(gòu)造創(chuàng)建(常用)
(1)提示:如果已經(jīng)有一個有參的構(gòu)造函數(shù)逛犹,系統(tǒng)不會默認生成一個無參的構(gòu)造函數(shù)
第二種 使用靜態(tài)工廠創(chuàng)建(不常用)
(1)創(chuàng)建靜態(tài)的方法端辱,返回類對象
第三種 使用實例工廠創(chuàng)建(不常用)
(1)創(chuàng)建不是靜態(tài)的方法,返回類對象
(2)使用實例工廠創(chuàng)建
.Bean標簽常用屬性
(1)id屬性? :起名稱虽画,id屬性值名稱任意命名舞蔽。
? -id屬性值,不能包含特殊特殊符號码撰。 -根據(jù)id值得到配置對象
(2)class屬性:創(chuàng)建對象所在類的全路徑
(3)name屬性:功能和id屬性一樣的渗柿。
id屬性值不能包含特殊符號,但是在name屬性值里面可以包含特殊符號脖岛。
(4)scope屬性:Bean的作用范圍
singleton:默認值朵栖,單例
prototype:多例
request:創(chuàng)建對象把對象放到request域里面
session:創(chuàng)建對象吧對象放到session域里面
globalSession:創(chuàng)建對象把對象放到globalSession里面
.屬性注入介紹
1.創(chuàng)建對象時候砾省,向類里面屬性里面設(shè)置值
2.屬性注入的方式介紹(三種方式)
java代碼的注入方式1.使用set方法注入2.使用有參數(shù)構(gòu)造注入3.使用接口注入
3.在spring框架里面,支持前面的兩種方式
(1)set方法注入
(2)有參數(shù)構(gòu)造注入(不常用)
注入對象類型屬性(重點)
1.創(chuàng)建service類和dao類? (1)在service得到dao對象
2.具體事項過程 (1)? 在service里面把dao作為類型屬性? ?(2)生成dao類型屬性的set方法
P名稱空間注入
注入復雜類型屬性
1 數(shù)組
2 list集合
3 map集合
4.properties類型
IOC和DI的區(qū)別
(1)IOC:控制反轉(zhuǎn)混槐,把對象創(chuàng)建交給spring進行配置
(2)DI:依賴注入编兄,向類里面的屬性中設(shè)置值
(3)關(guān)系:依賴注入不能單獨存在,需要在ioc基礎(chǔ)之上完成操作
.Spring整合web項目原理(重點)
1.加載spring核心配置文件
(1)new對象声登,功能可以實現(xiàn)狠鸳,效率很低
2.實現(xiàn)思想:把加載配置文件和創(chuàng)建對象過程,在服務(wù)器啟動時候完成
3.實現(xiàn)原理:
(1)ServletContext對象
(2)監(jiān)聽器(ServletContextListener接口)
(3)具體使用?
在服務(wù)器啟動時候悯嗓,為每個項目創(chuàng)建ServletContext對象在ServletContext對象創(chuàng)建時候件舵,使用監(jiān)聽器可以具體到ServletContext對象在什么時候創(chuàng)建
-使用監(jiān)聽器監(jiān)聽到ServletContext對象創(chuàng)建時候,
-加載spring配置文件脯厨,把配置文件配置對象創(chuàng)建
-把創(chuàng)建出來的對象放到ServletContext域?qū)ο罄锩妫╯etAttribute方法)
-獲取對象時候铅祸,到ServletContext域得到(getAttribute方法)
在spring里面不需要我們自己寫代碼實現(xiàn),幫封裝
(1)封裝了一個監(jiān)聽器合武,只需要配置監(jiān)聽器就可以了
(2)配置監(jiān)聽器之前做事情临梗,導入spring整合web項目jar包
(3)指定spring配置文件位置