一:spring的概念
1.1:spring是一個開源的輕量級的框架
1.2:spring的核心主要有兩部分:
1.2.1:aop:面向切面編程
1.2.2:ioc:控制反轉(就是實例化不是new出來,而是交給spring配置創建)
1.3:spring是一站式的框架:
1.3.1:spring在Javaee三層結構中,每一層都提供不同的解決技術
web層:有springMVC技術
service層:spring的ioc的技術
dao層:spring的jdbcTempalte
二:Spring的ioc操作:
就是對象的創建交給Spring進行操作,創建對象有兩種方式 ioc的配置文件方式、ioc的註解方式
2.1:ioc的底層原理是應用 xml配置文件、dom4j、工廠設計模式、反射........等技術來實現功能
2.2:ioc入門案例:
2.2.1:第一步:導包 .........
2.2.2:第二步:創建類,在類裏面創建方法
2.2.3:第三步:創建Spring配置文件,配置創建類
(1)Spring的核心配置文件名稱和位置不是固定的,建議放到src下面,
官方建議名稱 是applicationContex.xml,但是名稱可以隨意寫
(2)在配置文件中引入schema約束
(3)配置對象創建(這裏xml(就是配置文件方式)配置)
(4):測試代碼(只是單獨使用Spring的時候使用)
三:Spring的bean的管理(xml方式)
就是通過配置文件方式創建對象。
3.1: bean實例化的方式
(1) 第一種:使用類的無參數構造(重點)
這種方式實例化對象,就是通過反射找無參構造,所以無參構造是必須的
(2):使用靜態工廠創建
創建靜態方法,返回類對象
在配置文件中
3.2:bean標籤常用的屬性
(1)id屬性:起名稱,隨意起,id屬性值,不能包含特殊符號
根據id值得到匹配的對象
(2)class屬性:創建對象所在類的全路徑
(3)name屬性:和id屬性一樣,id屬性值不包括特殊符號,但是name屬性值可以包含特殊符號
(4)scope屬性: singleton:默認值,單實例
prototype:多實例(因爲struts2的Action是多實例)
四:屬性注入:
4.1:創建對象時候,向類裏的屬性裏面設置值
4.2:屬性注入的方式介紹(三種方式)
(1):使用set方法注入()
(2):使用有參數的構造方法注入
(3):使用接口注入
4.3:在Spring框架裏面,支持前兩種方式
(1):set方法注入(重點)
(2):有參數構造注入
4.3.1:使用有參數構造注入屬性
4.3.2:使用set方法注入屬性(重點)
五:注入對象類型屬性(重點)
需求:在service中得到dao對象
5.1:實現過程
5.1.1:在service裏面把dao作爲類型
5.1.2:在service中生成dao類型屬性的set方法
5.1.3:配置文件中注入關係
5.2:P名稱空間注入
(1) 在約束上面引入P名稱空間的路徑
(2)在配置
六:注入複雜類型屬性
數組、list集合、map集合、properties
七:IOC和DI區別
(1)IOC:是控制反轉,把對象創建交給Spring進行配置
(2)DI:依賴注入,向類裏面的屬性中設置值
(3)關係:依賴注入不能單獨存在,需要在IOC基礎之上完成操作
八:Spring的bean管理(註解方式)重要現在用的多
8.1: 註解開發準備,導包
8.2:創建類,創建方法
8.3:創建Spring配置文件,引入約束(註解約束...)
8.4:註解開發就得,開啓註解掃描
8.5:註解創建對象
8.5.1:在創建對象的類上面使用註解實現
8.5.2:在測試類中寫如下代碼,看是否創建對象成功。
8.6:創建對象有四個註解(目前這幾個的功能都一樣,都是創建對象)
@Component
@Controller
@Service
@Repository
8.7:創建對象是單實例還是多實例
Scope:singleton是單實例
prototype是多實例
8.8:註解注入屬性:
需求:在service中得到dao對象
(1)創建dao和service對象
(2)在service類裏面定義dao'類型的屬性
注入對象屬性第一個 註解 @Autowired
注入對象屬性第二個 註解 @Resource(常用,因爲這個可以註明對象名)
8.9:一般開發都是配置文件和註解混合使用
創建對象使用配置文件方式
注入屬性使用註解方式實現
九:AOP
9.1:aop:面向切面編程
9.2:採取橫向抽取機制
9.3:AOP操作術語
(1):切入點:就是實際增強的方法
(2):通知/增強:增強的邏輯,例如:擴展日誌功能,日誌功能稱爲增強
(3):切面:把增強用到具體的方法上面,就是把增強用到切入點上
9.4:Aop操作
(1):導相關包
(2):創建Spring核心配置文件,導入aop的約束
(3):使用表達式配置切入點
常用的表達式:
execution(<訪問修飾符>?<返回類型><方法名>(<參數>)<異常>)
例如:(1) execution(* cn.itcast.aop.Book.add(..))
(2)execution(* cn.itcast.aop.Book.*(..))
(3)execution(* *.*(..))
(4):AOP操作案例
Spring整合web項目
每次訪問Action的時候,都會加載Spring配置文件,耗費資源
解決方案:
在服務器啓動的時候 創建對象加載配置文件 ,
在Spring裏面不需要我們自己代碼實現,Spring已經封裝好了,只需要配置就可以完成加載Spring配置文件在服務器啓動時候。
只需要配置一個監聽器
這樣得指定Spring核心配置文件的位置,(因爲默認找到官方要求的.....)
十:基於aspectj的註解aop操作
10.1:創建對象
10.2:在Spring核心配置文件中,開啓aop操作
10.3:在增強類上面使用註解完成aop操作
十一:Spring的jdbcTemplate操作
11.1 : 因爲Spring是一站式框架,所以針對每一層都有解決技術
(1):dao層,使用jdbcTemplate
jdbcTemplate 就是對jdbc的封裝
11.2:使用jdbcTemplate實現功能
(1)導包(2)創建對象(3)創建jdbcTemplate對象,設置數據源(4)調用jdbcTemplate對象中的方法實現操作
11.2.1:增加.....修改.....刪除.....
11.2.2:查詢
(1):查詢返回多少條數據
(2):查詢返回對象
(3)查詢返回list集合
十二:Spring配置連接池和dao使用jdbcTemplate
12.1:Spring配置c3p0連接池
12.1.1:導包
12.1.2:創建Spring配置文件,配置連接池
下面這是c3p0連接池的原始用法
下面是c3p0在配置文件中用法
12.2:dao中使用jdbcTemplate
12.2.1:創建service和dao類,在配置文件中創建對象,在service中注入dao對象
12.2.2:創建jdbcTemplate對象,把模板對象注入到dao對象裏面
12.2.3:在jdbcTemplate對象中注入dDataSource
十三:Spring事物管理api
13.1:Spring事務管理方式
聲明式事物管理
(1):基於xml配置文件實現
(2):基於註解實現
13.2:聲明式事物管理(xml配置)
配置文件方式使用aop思想配置
13.2.1:配置事務管理器:
13.2.2:配置事物增強
13.2.3:配置切面
13.:3:聲明式事物管理(註解)簡單常用
13.3.1:配置事物管理器
13.3.2:配置事物註解(就是開啓註解掃描)
13.3.3:在要使用事務的方法所在的類上面添加註解