標籤:開發 point web 掃描 xml配置 pos style 面向切面編程 常用
Spring的bean管理(註解)
1、代碼裡面特殊標記,使用註解可以完成相應功能
2、註解寫法@註解名稱(屬性名稱=屬性值)
3、類,方法,屬性(註解使用)
spring註解開發準備
1、匯入基本的jar包及aop的jar包(有關註解的jar包)
2、建立類,建立方法
3、建立spring設定檔,引入約束
spring的ioc註解開發,引入新的約束
4、開啟註解掃描
@Component:組件(作用在類上)
Spring中提供@Component的三個衍生註解:(功能目前來講是一致的)
@Controller:web層
@Service:業務層
@Repository:持久層
註解建立對象
1、在建立對象的類上面使用註解實現
2、建立對象的四個註解
註解注入屬性 @Autowired自動裝配
1、建立Service類,建立Dao類,在service得到dao對象
2、@Resource(name="userDao"):name屬性值 寫 註解建立dao對象value
設定檔和註解混合使用
1、建立對象操作使用設定檔方式實現
2、注入屬性的操作使用註解方式實現
AOP
aop:面向切面編程,擴充功能不修改原始碼實現
aop採取橫向抽取機制,取代了傳統縱向繼承體系重複性
AOP底層原理
動態代理實現
AOP操作術語
Joinpoint(連接點):
在類裡面可以被增強方法法,這些方法稱為連接點
Pointcut(切入點)
在類裡面可以有很多的方法被增強,實際增強方法成為切入點
Advice(通知/增強)
增強邏輯,稱為增強,比如擴充日誌功能,這個日誌功能成為增強
前置通知:在方法前執行
後置通知:在方法後執行
異常通知:在方法發生異常執行
最終通知:在後置之後執行
環繞通知:
Aspect(切面)
把增強應用到具體方法上面的過程稱為切面
(把增強用到切入點的過程)
spring的aop操作(基於aspectj的xml方式
1、在spring裡面進行aop操作,使用aspectj實現
aspectj不是spring一部分,和spring一起使用進行aop操作
spring2.0以後新增了對AspectJ支援
2、使用aspectj實現aop有兩種方式
基於aspectj的xml配置
基於aspectj的註解方式
AOP操作準備
1、除了匯入基本的jar包之外,還需要匯入aop相關的jar包
2、建立spring核心配置,匯入aop約束
使用運算式配置切入點
1、切入點,實際增強方法
2、常用的運算式
execution(<存取修飾詞>?<傳回型別><方法名>(<參數>)<異常>)
execution(* *.*(..))
log4j介紹
1、通過log4j可以看到程式運行過程中更詳細的資訊
經常使用log4j查看日誌
2、使用
匯入log4j的jar包
複製log4j。properties的複製檔案,複製到src下面
3、設定記錄層級
log4j.rootLogger=info,stdout
info:看到基本資料
debug:看到更詳細資料
spring整合web項目示範
1、示範問題
(1)action調用service,service調用dao
每次訪問action時候,都會載入spring設定檔
2、解決方案
(1)在伺服器啟動時,建立對象載入設定檔
(2)底層使用監聽器、ServletContext對象
3、在spring中不需要我們自己寫代碼實現,已經協助我們封裝
(1)封裝了一個監聽器,只需要配置監聽器就可以了
(2)配置監聽器之前做一些事情:匯入spring整合web項目的jar包(spring-web.jar)
(3)指定載入spring設定檔位置
1 <context-param>2 <param-name>contextConfigLocation</param-name>3 <param-value>classpath:bean1.xml</param-value>4 </context-param>
spring架構(二)