spring中AspectJ(16)
来源:互联网 发布:程序员自己创业 编辑:程序博客网 时间:2024/06/05 06:59
2016/1/18 11:44:08
1.AspectJ
- @AspectJ的风格类似纯Java注解的普通Java类
- Spring可以使用AspectJ来做切入点解析
- AOP的运行时仍旧是纯的Spring AOP,对AspectJ的编译器或者织入无依赖性
- @AspectJ切面使用@Aspect注解配置,拥有@Aspect的任何bean将被Spring自动识别注册并应用
- 用@Aspect注解的类可以有方法和字段,它们也可能包括切入点(pointcut),通知(advice),和引入(Introduction)声明
- Aspect注解是不能通过类路径自动检测发现的,所以需要配合使用@Component注释或者在xml配置bean
- 一个类中的@Aspect注解标识它为一个切面,并且将自己从自动代理中排除
2.切入点的定义
- 一个切入点可以通过一个普通的方法定义来提供,并且切入点表达式使用@Pointcut注解,方法返回类型必须为void
- 环绕通知使用@Around注解来声明,通知方法的第一个参数必须是ProceedingJoinPoint类型
在通知内部调用ProceedingJoinPoint的proceed()方法会导致执行真正的方法,传入一个Object[]对象,数组中的值将被做为参数传递给方法
@Aspectpublic class AspectClass { // 配置前置通知 @Before("execution(* com.lovo.inter..*.t*(..))") public void beforeMethod() { System.out.println("执行beforeMethod方法"); } // 配置后置通知 @After("execution(* com.lovo.inter..*.t*(..))") public void afterMethod() { System.out.println("执行after方法"); } // 配置环绕通知 @Around("execution(* com.lovo.inter..*.g*(..))") public Object press(ProceedingJoinPoint point) { System.out.println("环绕执行前"); Object returnObj = null; try { returnObj = point.proceed(); } catch (Throwable e) { e.printStackTrace(); } System.out.println("环绕执行后"); return returnObj; }}
0 0
- spring中AspectJ(16)
- spring中AspectJ
- spring中AspectJ
- spring项目中使用Aspectj
- Spring中使用AspectJ指示器
- Spring中使用AspectJ指示器
- 在Spring 2.0中集成AspectJ
- 在Spring 2.0中集成AspectJ
- 在Spring中配置aspectj模式
- Spring中使用AspectJ实现AOP
- Spring框架:AOP中切点采用aspectj
- spring中利用aspectJ自定义注解
- 9.4.Spring 中基于 AOP 的 @AspectJ
- Spring + AspectJ
- spring @AspectJ
- Spring AOP(二)(Spring中基于AOP的@AspectJ)
- 在netbeans的spring项目中配置aspectJ
- AspectJ spring aop 记录某些类中方法执行时间实例
- spring中基于java的容器注解(12)
- spring中基于java的容器注解,对JSR的支持(13)
- 装饰设计模式
- spring中AOP基本概念(14)
- spring中AOP中配置切面和切入点(15)
- spring中AspectJ(16)
- Ubuntu 14.04 搭建 Android 开发环境
- 移动端Web开发环境搭建
- 从Java String实例来理解ANSI、Unicode、BMP、UTF等编码概念
- hnoi2013游走 (高斯消元)
- CSS实现背景渐变(gradient)多兼容
- MotionEvent的getX()与getRawX()区别
- 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
- 字符流读和写