1.是什麼?
Spring是基於JEE的輕量級的應用框架
2.有什麼?
每個包的功能:
WEBMVC:spring 本身提供的web 框架
WEB:整合web 應用的框架
JEE :繼承一系列的jee的技術
DAO:封裝了JDBC;
ORM:提供了對ORM工具的整合
AOP :面向切面編成
CORE:spring的核心包,提供bean的公廠和IOC容器
3.能幹什麼?
把一列的jee的技術有效的組合在一起形成以良好的系統
4.容器和bean
Bean :是指受spring和ioc管理的物件稱為bean
容器 :(與jee的容器類比)
Jee :提供元件的執行環境和管理元件的生命週期(不能單獨存在)
Spring :提供bean的執行環境和管理bean的生命週期(可以單獨存在)
5.IOC控制反轉
從前的應用程式想要得到A的例項他會直接主動的去拿,當用了sping後,應用程式由主動的去取變成被動的等待,由spring來控制應用程式所需要的物件
1.IOC的優點
1.可以透過IOC來獲得例項
2.可以透過DI來獲取注入的資源
2.配置IOC的原則
1.一定是可變的資源才採用依賴注入
2.一定是層間的介面或者是模組之間的相互呼叫才採用依賴注入
3.表現層呼叫邏輯層,可以讓表現層作為客戶端,而不要採用依賴注入。表現層只需要邏輯層介面一個資源
6.DI依賴注入
1. 應用程式依賴spring注入所需要的物件IOC和DI是對同一種事情的不同描述
2.setter注入: 在配置檔案中將介面的實現配置為bean在應用程式中注入
3.構造器注入
4.singleton
1.單例模式是整個的jvm中只有一個例項
2.spring的singleton是指在spring的容器中只有一個例項,一個生命週期中只有一個例項
5.DI的優點:
1.程式被動等待,強化面向介面編成
2.切斷了物件或元件之間的聯絡,使程式的結構更加鬆散,執行和維護更加簡單
7.Aop面向切面程式設計
1.AOP面向切面程式設計 一些較好的模式或者是示例----正規化
切面:一個切面代表我們所關注的一系列的共同的功能點(模組之間的共同的功能點)
2.AOP的思想: 主動---->被動(追加功能)
3.AOP 的概念
1.切面 :我們所關注的功能點
2.連線點 :事件的觸發點(方法的執行)
3.通知 :連線點觸發時 執行的動作(方法)
4.切入點 :一系列的連線點的集合 (連線點的模組化)
5.引入 :擴充套件的功能
6.目標物件 :包含連線點的物件
7.aop代理 :實現機制
8.使用註解
1.@Aspect宣告一個切面,將一系列的共同的功能定義成一個切面
直接在類上定義@Aspect
2.@Pointcut宣告切入點
用一個專門的類來定義pointcut,類中的方法名就是該pointcut的名字
3.@Aronud
註解@Around環繞追加功能;
在執行目標物件的方法的前、後追加功能;
必須有引數;第一個引數的型別必須為ProceedingJoinPoint;
透過ProceedingJoinPoint的例項的proceed來呼叫所監控的目標物件的方法
定義一個pointcut,透過方法名來作為pointcut的名稱來引用
4.@Before
註解@Before在執行目標物件的方法前追加相應的功能
定義一個pointcut,透過方法名來作為pointcut的名稱來引用
5.@After
註解@After在執行目標物件的方法後追加相應的功能
定義一個pointcut,透過方法名來作為pointcut的名稱來引用
6.@Transcational
指哪打哪(可以在類上,也可以在方法上)
同樣需要注入dataSource和spring的事務管理