Java 之 SpringAspectJ

AspectJ

AspectJ 是一个面向切面的框架,它扩展了 Java 语言(也是一种语言)
定义了 AOP 语法,有专门的便依赖用来生成遵守 Java 字节编码规范的 Class 文件
AspectJ 是一种编译期的用注解形式实现的 AOP

AOP/Spring AOP/AspectJ 的区别

AOP:是一种面向切面的编程范式,是一种编程思想,旨在通过分离横切关注点,提高模块化,可以跨越对象关注点。
Aop的典型应用即spring的事务机制,日志记录。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑
各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。主要功能是:日志记录,性能统计,安全
控制,事务处理,异常处理等等;主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从
业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变
这些行为的时候不影响业务逻辑的代码。

AspectJ和Spring AOP 是AOP的两种实现方案,这一点要搞清楚。

AspectJ:Aspectj是aop的java实现方案,AspectJ是一种编译期的用注解形式实现的AOP。

Spring AOP
      Spring aop是aop实现方案的一种,有两种实现方式,1是jdk动态代理,2是cglib动态代理。它支持在运
      行期基于动态代理的方式将aspect织入目标代码中来实现aop。但是spring aop的切入点支持有限,而且
      对于static方法和final方法都无法支持aop(因为支持aop。现在的spring整合了aspectj,在spring
      体系中可以使用aspectj语法来实现aop。
1.xml 配置完成 AOP
    创建通知类,添加需要的方法(1.前置 2.后置 3.环绕 4.后置 Returning 5.throwing)
    在配置文件中添加通知类的 bean
    添加<aop:config>
            <aop:pointcut expression="execution(* com.xxx.dao.impl.*.*(..)) " 
                id="point"/>
            <aop:aspect ref="advice">
                <aop:before method="before" pointcut-ref="point"/>
                <aop:around method="around" pointcut-ref="point"/>
                <aop:after method="after" pointcut-ref="point"/>
                <aop:after-returning method="returning" pointcut-ref="point"/>
                <aop:after-throwing method="throwing" pointcut-ref="point"/>
            </aop:aspect>
        </aop:config>
2.注解配置完成 AOP
    1.创建通知类
    2.添加 @Aspect 设置通知类
    3.创建切点方法
    4.给通知方法加上相应的注解
        @After @Before...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值