AOP-自定义advice
Advice
使用<tx:advice>定义advice
<!-- 事务控制 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="save*" propagation="REQUIRED"rollback-for="Exception" /><tx:method name="insert*" propagation="REQUIRED"rollback-for="Exception" /><tx:method name="update*" propagation="REQUIRED"rollback-for="Exception" /><tx:method name="remove*" propagation="REQUIRED"rollback-for="Exception" /><tx:method name="delete*" propagation="REQUIRED"rollback-for="Exception" /><tx:method name="get*" read-only="true" /><tx:method name="select*" read-only="true" /><tx:method name="find*" read-only="true" /><tx:method name="*" propagation="REQUIRED" rollback-for="Exception,RemoteException" /></tx:attributes></tx:advice>
<tx:advice id="txAdviceDao" transaction-manager="transactionManager"><tx:attributes><tx:method name="updateNode" propagation="NOT_SUPPORTED" rollback-for="Exception"/></tx:attributes></tx:advice>
使用bean定义来定义advice然后再被引用
<bean id="annotationAdivce" class="com.lambdafk.inr.common.spring.AnnotationAdvice"/>
public class AnnotationAdvice implements MethodInterceptor {@Overridepublic Object invoke(MethodInvocation invocation) throws Throwable {Log logger = LogFactory.getLog(invocation.getClass());RunTimeAnno runTimeAnno = invocation.getMethod().getAnnotation(RunTimeAnno.class);String value = runTimeAnno.value();logger.info("【"+value+"开始】");long t1 = System.currentTimeMillis();Object object = invocation.proceed();long t2 = System.currentTimeMillis();logger.info("【"+value+"结束,耗时"+(t2-t1)+"ms】");return object;}
}
将advice和pointcut组装成advisor
<aop:config ><aop:advisor advice-ref="annotationAdivce" pointcut-ref="annotationPointcut"/></aop:config>
<aop:config><aop:pointcut id="txPointcutDao" expression="execution(* cn.lambdafk.bpm.dao.*Dao.*(..))" /><aop:advisor advice-ref="txAdviceDao" pointcut-ref="txPointcutDao" /></aop:config>
<aop:config> <aop:advisor pointcut="execution(* *com.lambdafk.inr.quartz.HandlerNet*.*(..))" advice-ref="handlerAdvice" /> <aop:advisor pointcut="execution(* *com.lambdafk.inr.quartz.HandlerPay*.*(..))" advice-ref="handlerAdvice" /> </aop:config
AOP-自定义advice相关推荐
- JPOM - AOP+自定义注解实现操作日志记录
文章目录 地址 版本 源码解析-AOP+自定义注解实现操作日志记录 地址 Gitee: https://gitee.com/dromara/Jpom 官网: https://jpom.io/ 一款简而 ...
- spring AOP自定义注解方式实现日志管理
转:spring AOP自定义注解方式实现日志管理 今天继续实现AOP,到这里我个人认为是最灵活,可扩展的方式了,就拿日志管理来说,用Spring AOP 自定义注解形式实现日志管理.废话不多说,直接 ...
- springboot+aop+自定义注解,打造通用的全局异常处理和参数校验切面(通用版)
springboot+aop+自定义注解,打造通用的全局异常处理和参数校验切面(通用版) 参考文章: (1)springboot+aop+自定义注解,打造通用的全局异常处理和参数校验切面(通用版) ( ...
- Java AOP自定义注解
一.背景 在之前文章:Java注解详解中,主要介绍了注解的含义.作用.以及常用的各类注解.今天主要介绍在Springboot中如何实现一个自定义注解,通过自定义注解去实现一些定制化的需求. 二.了解元 ...
- 实习笔记—— AOP开发II(AOP中Advice的类型)
系列文章目录 实习笔记 -- Spring基础 实习笔记 -- IOC反转控制(xml配置文件 + 注解) 实习笔记 -- AOP开发I 文章目录 系列文章目录 一.AOP中Advice的类型的XML ...
- spring aop 自定义注解配合swagger注解保存操作日志到mysql数据库含(源码)
spring aop 自定义注解保存操作日志到mysql数据库 一.思路 二.自定义注解 三.编写操作日志 四.编写操作日志切面\增强 五.使用 六.`注意` 一.思路 利用spring aop 对方 ...
- Spring AOP自定义注解并获取注解的参数
环境 springboot:1.5 Intellij IDEA:2021.1 序言 最近有个需求,要做方法层面的权限控制.以前在公司使用的是spring security,然后使用注解 如下: @Pr ...
- AOP+自定义注解实现字典翻译
目录 需求: 结果展示 : 代码实现 : 需求: 一般情况下数据库表中字段对应的是字典值,但在查询或导出时需要展示字典名,若每次字典转换时都需要关联字典表查询,而且导出时还需要在做一次数据转换,这样处 ...
- Spring AOP 自定义注解记录操作日志
1.自定义注释 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Inherited public @interface ...
- Spring AOP增强(Advice)
Sring AOP通过PointCut来指定在那些类的那些方法上织入横切逻辑,通过Advice来指定在切点上具体做什么事情.如方法前做什么,方法后做什么,抛出异常做什么. 再来看一下图 定义Point ...
最新文章
- 人工不智能,AI产品经理要帮助用户认清这一现实
- 关闭socket以及Socket选项
- android view getx 0,Android动画:解决通过View.getY()获取初始位置为0的问题
- 幼小衔接语言教案上c册_关于幼小衔接,这里有你最想要的解答
- DIY自己的GNU交叉工具链(i386-arm) 【ZT】
- 李迟2021年11月知识总结
- python 去除水印_基于python的图片修复程序(实现水印去除)
- [WC2018]即时战略——动态点分治(替罪羊式点分树)
- FM1208CPU卡读写函数说明
- java炒股软件_股票软件java,中国软件股票怎么样
- 深度学习-对抗神经网络简介
- eclipse 背景绿豆沙颜色
- VBA中调用Excel函数
- Spring错误——Spring 注解——factory-bean reference points back to the same bean definition
- 解除封闭、寒假延长!多校发通知!
- 【转】Ceph对象存储(rgw)的IPv6环境配置
- 智能电动车骑行头盔安全帽方案/APP/PCBA/小程序/开发
- java毕业设计软件S2SH人力资源管理系统|人事薪资招聘oa人力请假考勤工资[包运行成功]
- 操作系统实验| Linux系统调用的实现
- 安装黑群晖找不到局域网电脑_简单几招,教你如何隐藏电脑上的文件,保证让其他人找不到!...
热门文章
- 百度地图离线API2.0(含示例,可完全断网访问)
- c 语言中虚方法有什么作用是什么,虚函数的作用?
- Linux报错:-bash: 路径xx: No such file or directory解决方法
- 随机变量的期望和方差
- undefsafe原型链[网鼎杯 2020 青龙组]notes
- Unity射线与UI碰撞检测
- 在Leaflet中自定义4490坐标系
- 面经分享|中科院老哥的算法开发岗面经总结
- OCT-模拟集成电路设计的九个境界
- 高效理解pytorch的backward需要scalar outputs