Spring的Bean 管理(註解)
註解
- 代碼裏面特殊標記,使用註解可以完成功能
- 註解寫法 @註解名稱(屬性名稱=屬性值)
- 註解使用在類上面,方法上面,屬性上面
Spring註解開發準備
-
導入jar包
- 導入基本的jar包
- 導入aop的jar包
-
創建類,創建方法
-
創建spring配置文件,引入約束
-
做ioc基本功能,引入約束beans
-
做spring的ioc註解開發,引入新約束
-
開啓註解掃描
-
註解對象創建
-
在創建的類上面使用註解實現
value相當於配置文件裏的id值
-
創建對象有四個註解
- @Conponent
- @Controller web層
- @Service 業務層
- @Repository 持久層
-
創建對象單實例還是多實例
註解注入屬性
-
創建service類,創建dao類,在service得到dao對象
1.創建dao和service對象
-
在service類裏面定義dao類型屬性
一種使用Autowired,一種使用Resource
使用Resource比較清晰
配置文件和註解混合使用
- 創建對象操作使用配置文件方式實現
- 注入屬性的操作使用註釋方式實現
AOP
AOP概念
- aop:面向切面編程,擴展功能不修改源代碼實現
- AOP採取橫向抽取機制,取代傳統縱向繼承體系重複性代碼
AOP原理
AOP操作術語
Spring的aop操作
- 在spring裏面進行aop操作,使用aspectj實現
- aspectj不是Spring一部分,和spring一起使用進行aop操作
- spring2.0以後新增了對apectj的支持
- 使用aspectj實現aop有兩種方式
- 基於aspectj的xml配置
- 基於aspectj的註解方式
AOP操作準備
-
除了導入基本的jar包,還導入aop的jar包
-
創建spring核心配置文件,導入aop約束
使用表達式配置切入點
-
切入點:實際增強的方法
-
常用的表達式
execution(<訪問修飾符>?<返回類型><方法名>(<參數>)<異常>)
- execution(* cn.itcast.aop.Book.add(…))
- execution(* cn.itcast.aop.Book.*(…))
excution(* *.*(...))
- 匹配所有save開頭的方法execution(* save*(….))
Aspectj的aop操作
Log4j介紹
- 通過log4j可以看到程序運行中更詳細的信息
- 經常使用log4j查看日誌
- 使用
- 導入log4j的jar包
- 複製log4j的配置文件,複製到src下
- 設置日誌級別
- info看到基本信息
- debug:看到詳細信息
Spring整合web項目演示
-
在spring裏面不需要我們自己寫代碼實現,spring已經幫我們封裝好了
-
封裝了一個監聽器,只要配置監聽器就可以了
-
配置監聽器之前:導入spring整合web項目jar包
spring-web-xx.RELEASE.jar
-
-
指定spring配置文件位置