Spring AOP-Annotation構成
springのAOPへのサポート(Annotation方式を採用)
1、スプリングの依存パッケージ構成
*SPRING_HOME/dist/spring.jar
*SPRING_HOME/lib/log 4 j/log 4 j-1.
*SPRING_HOME/lib/jakata-commons/commons-loging.jar
*SPRING_HOME/lib/aspectj/*.jar
2、横断的な注意点をモジュール化し、SecurityHandler.javaを確立する.
3、コメントでSecurityHandlerをAsppectとして指定します.
4、注釈でAdviceとPointcutを定義する
5、AsppectJのAnnotationへのサポートを有効にし、目標類とAsppect類をIoC容器に配置する.
6、クライアントの開発
xmlにAnnotationを追加します.
Cross Cutting Concrn
独立したサービスです.システムの処理プロセスに満ちています.
Asppect
横断的な懸念点のモジュール化
アドバンス
横断的な懸念点の具体的な実現
Pointcut
AdviceがどのJoinPointに適用されるかを定義しています.Springにとっては、メソッド呼び出し、
ジョインポイント
Adviceがアプリケーション上で実行するポイントやタイミング、SpringはメソッドのJoinPointのみをサポートしています.この点は、Asppecjなどの属性修正も可能です.
Weave
AdviceをTarget Objectに適用する過程を織り込みといい、Springがサポートするのは動的に織り込むことです.
Target Object
Adviceが適用される対象
Proxy
Spring AOPは、デフォルトではJDKのダイナミックエージェントを使用しています.そのエージェントは実行時に作成され、CGLOIBエージェントを使用することもできます.
Introduction
クラスのための動的な追加方法があります.
1、スプリングの依存パッケージ構成
*SPRING_HOME/dist/spring.jar
*SPRING_HOME/lib/log 4 j/log 4 j-1.
*SPRING_HOME/lib/jakata-commons/commons-loging.jar
*SPRING_HOME/lib/aspectj/*.jar
2、横断的な注意点をモジュール化し、SecurityHandler.javaを確立する.
3、コメントでSecurityHandlerをAsppectとして指定します.
4、注釈でAdviceとPointcutを定義する
5、AsppectJのAnnotationへのサポートを有効にし、目標類とAsppect類をIoC容器に配置する.
6、クライアントの開発
xmlにAnnotationを追加します.
<aop:aspectj-autoproxy/>
ターゲットクラス
@Aspect
public class SecurityHandler {
/**
* Pointcut,Pointcut addAddMethod(),
* ,
*/
@Pointcut("execution(* add*(..))")
private void addAddMethod(){};
/**
* Advice, Advice Pointcut Joinpoint
*/
@Before("addAddMethod()")
//@After("addAddMethod()")
private void checkSecurity() {
System.out.println("-------checkSecurity-------");
}
}
呼び出し
public static void main(String[] args) {
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
UserManager userManager = (UserManager)factory.getBean("userManager");
userManager.addUser(" ", "123");
}
AOPの主要概念:Cross Cutting Concrn
独立したサービスです.システムの処理プロセスに満ちています.
Asppect
横断的な懸念点のモジュール化
アドバンス
横断的な懸念点の具体的な実現
Pointcut
AdviceがどのJoinPointに適用されるかを定義しています.Springにとっては、メソッド呼び出し、
ジョインポイント
Adviceがアプリケーション上で実行するポイントやタイミング、SpringはメソッドのJoinPointのみをサポートしています.この点は、Asppecjなどの属性修正も可能です.
Weave
AdviceをTarget Objectに適用する過程を織り込みといい、Springがサポートするのは動的に織り込むことです.
Target Object
Adviceが適用される対象
Proxy
Spring AOPは、デフォルトではJDKのダイナミックエージェントを使用しています.そのエージェントは実行時に作成され、CGLOIBエージェントを使用することもできます.
Introduction
クラスのための動的な追加方法があります.