面向切面的編程。
類似事務管理。
AOP是Spring的一個關鍵組件,但是IoC容器不依賴于AOP,也就是AOP可以選擇使用,Spring提供了一個非常好的中間件解決方案。
Spring AOP主要用于:
-提供聲明式企業服務, 特別是作為EJB聲明式服務的替代
-允許用戶實現自己的客制化面, 用AOP補充OOP的使用。
5.1.1 AOP相關概念
連接點(Joinpoint)、切點(Pointcut)、增強(Advice)、引介(Introduction)、織入(Weaving)、切面(Aspect)
-Aspect, 切面 @Aspect
-Join point,在Spring AOP中, 一般是方法的執行
-Advice:特殊的join point."around", "before" and "after" advice
-Pointcut, 匹配切入點的謂詞。
-Introduction
-Target object.
-AOP proxy. JDK動態代理或者CGLIB代理
-Weaving:將切面與其他應用程序類型或對象鏈接以創建建議對象。
5.1.2 Spring AOP的作用和目標
5.1.3 AOP 代理
5.2 @AspectJ 支持
5.2.1 開啟@AspectJ支持
Java配置
@Configuration
@EnableAspectJAutoProxy
public class AppConfig {
}
}
使用xml 配置方式
<aop:aspectj-autoproxy/>
5.2.2 聲明一個切面
<bean id="myAspect" class="org.xyz.NotVeryUsefulAspect">
<!-- configure properties of aspect here as normal -->
</bean>
類聲明方式
package org.xyz;
import org.aspectj.lang.annotation.Aspect;
@Aspect
public class NotVeryUsefulAspect {
}
}
5.2.3 聲明一個切入點
@Pointcut("execution(* transfer(..))")// the pointcut expression
private void anyOldTransfer() {}// the pointcut signature
在執行transfer方法是執行anyOldTransfer
5.2.4 聲明advice
5.2.5 引介 - Introductions
將增強應用在指定的接口上。
- 空白目錄
- 0.環境準備
- 0.1基于maven的工程創建
- 1.控制反轉容器
- 1.1 Spring控制反轉容器和beans介紹
- 1.2 容器概覽
- 1.3 Bean概覽
- 1.4 依賴
- 1.5 Bean的范圍
- 1.6 客制bean的特性
- 1.7 Bean定義的繼承
- 1.8 容器擴展點
- 1.9 基于注解的容器配置
- 1.10 類路徑掃描及組件管理
- 1.11 使用JSR 330標準的注解
- 1.12 基于Java的容器配置
- 1.12.1 基本概念: @Bean 和 @Configuration
- 1.13 環境抽象化
- 1.14 注冊一個LoadTimeWeaver
- 1.15 ApplicationContext的附加功能
- 1.16 BeanFactory
- 2. 資源
- 3. 驗證,數據綁定和類型轉換
- 4. Spring表達式語言(SpEL)
- 5. Spring面向方面的切面編程
- 6. Spring AOP 接口
- 7. 空安全
- 8. 數據緩沖和編碼
- 9. 附錄