您的位置:首页 > 编程语言 > Java开发

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

2018-03-22 16:51 786 查看
Spring AOP的主要功能相信大家都知道,日志记录、权限校验等等。用法就是定义一个切入点(Pointcut),定义一个通知(advice),然后设置通知在该切入点上执行的方式(前置、后置、环绕等),切点可以是注解基于AsjectJ框架(注解方式)和自定义注解的支持步骤:1.在spring.xml中配置相关参数2.创建自定义注解3.定义一个切面类4.在controller类方法中,使用
1.在spring.xml中配置相关参数1.自动扫描包和启用@AsjectJ注解的支持


2.创建自定义注解


@Target、@Retention、@Inherited、@Documented为元注解(meta-annotation),它们是负责注解其他注解的。Target:指明注解支持的使用范围,取值可以参考枚举ElementType,以下:ElementType.TYPE //类、接口、枚举
ElementType.FIELD //属性
ElementType.METHOD //方法
ElementType.PARAMETER //参数
ElementType.CONSTRUCTOR //构造器
ElementType.LOCAL_VARIABLE //局部变量
ElementType.ANNOTATION_TYPE //注解
ElementType.PACKAGE //包

Retention:指明注解保留的的时间长短,取值参考枚举RetentionPolicy,一下:SOURCE //源文件中保留
CLASS //class编译时保留
RUNTIME //运行时保留

Inherited:指明该注解类型被自动继承。如果一个annotation注解被@Inherited修饰,那么该注解作用于的类 的子类也会使用该annotation注解。
Documented:指明拥有这个注解的元素可以被javadoc此类的工具文档化。
3.定义一个切面类



因篇幅问题,省去其他方法,如1.@AfterReturning(pointcut = "controllerAspect()")

public void doAfter(JoinPoint joinPoint)
2.@AfterReturning("controllerAspect()")

public void afterReturn(JoinPoint joinPoint)
在切面类中,也可以编写添加日志表的操作代码(自由发挥)
4.在controller类中测试

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: