Spring系列之 (十六):利用Spring AOP和自定义注解实现日志功能

Spring AOP的主要功能相信大家都知道,日志记录、权限校验等等。

用法就是定义一个切入点(Pointcut),定义一个通知(advice),然后设置通知在该切入点上执行的方式(前置、后置、环绕等),切点可以是注解

基于AsjectJ框架(注解方式)和自定义注解的支持

步骤:

1.在spring.xml中配置相关参数

2.创建自定义注解

3.定义一个切面类

4.在controller类方法中,使用


1.在spring.xml中配置相关参数

1.自动扫描包和启用@AsjectJ注解的支持


2.创建自定义注解


@Target、@Retention、@Inherited、@Documented为元注解(meta-annotation),它们是负责注解其他注解的。
  1. Target:指明注解支持的使用范围,取值可以参考枚举ElementType,以下:
    • ElementType.TYPE //类、接口、枚举
    • ElementType.FIELD //属性
    • ElementType.METHOD //方法
    • ElementType.PARAMETER //参数
    • ElementType.CONSTRUCTOR //构造器
    • ElementType.LOCAL_VARIABLE //局部变量
    • ElementType.ANNOTATION_TYPE //注解
    • ElementType.PACKAGE //包
  2. Retention:指明注解保留的的时间长短,取值参考枚举RetentionPolicy,一下:
    • SOURCE //源文件中保留
    • CLASS //class编译时保留
    • RUNTIME //运行时保留
  3. Inherited:指明该注解类型被自动继承如果一个annotation注解被@Inherited修饰,那么该注解作用于的类 的子类也会使用该annotation注解。
  4. Documented:指明拥有这个注解的元素可以被javadoc此类的工具文档化

3.定义一个切面类


因篇幅问题,省去其他方法,如

1.@AfterReturning(pointcut = "controllerAspect()")

public void doAfter(JoinPoint joinPoint)

2.@AfterReturning("controllerAspect()")

public void afterReturn(JoinPoint joinPoint)

在切面类中,也可以编写添加日志表的操作代码(自由发挥)

4.在controller类中测试



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值