日期:2014-05-16  浏览次数:21108 次

AOP具体实现--AspectJ(2)

   

   上篇文章我们对AOP的相关概念进行了解,接下来我们将采用Annotation的方式完成AOP的实现.当然也可以用XML的配置方式进行实现.

 

采用Annotation完成AOP示例

 

1、spring的依赖包配置

SPRING_HOME/dist/spring.jar

SPRING_HOME/lib/log4j/log4j-1.2.14.jar

SPRING_HOME/lib/jakarta-commons/commons-logging.jar

SPRING_HOME/lib/aspectj/*.jar

 

2、将横切性关注点模块化,建立SecurityHandler.java

 

 

			package com.bjpowernode.spring;
			
			import org.aspectj.lang.annotation.After;
			import org.aspectj.lang.annotation.Aspect;
			import org.aspectj.lang.annotation.Before;
			import org.aspectj.lang.annotation.Pointcut;
			
			
			//采用注解指定SecurityHandler为Aspect
			@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-------");
				}		
			}