spring --解析自定义注解SpringAOP(配合@Aspect)
1:首先,声明自定义注解
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface DtTransactional { /*
* Whether need to rollback
*/
public boolean includeLocalTransaction() default true; public boolean confirmMethodExist() default true; /*
* Allow [confirmMethod] is null if [confirmMethodExist] is false
*/
public String confirmMethod() default ""; public String cancelMethod(); }
自定义注解定义的属性方法,如果没有 default “” ,则使用该注解时该属性为必填 ;
2:定义切面处理类
@Aspect
@Component
@Slf4j
public class DistributedTransactionAspect{ @Autowired
private DistributedTransactionInterceptor distributedTransactionInterceptor; @Pointcut("@annotation(com.sysware.cloud.commons.dts.annotation.DtTransactional)")
public void distributedTransactionService() { } @Around("distributedTransactionService()")
public Object interceptDtTransactionalMethod(ProceedingJoinPoint pjp) throws Throwable {
log.debug("interface-ITransactionRunning-start---->");
Object obj = distributedTransactionInterceptor.interceptDtTransactionalMethod(pjp);
log.debug("interface-ITransactionRunning-end---->");
return obj;
}
}
定义切面处理类关键点:
1:类上面用@Aspect 注解修饰 。
2:定义切点,用@Pointcut("@annotation(com.sysware.cloud.commons.dts.annotation.DtTransactional)") 注解定义切点,
表示扫描所有用@DtTransactional注解标识的方法 。
3:用@Around @Before @After 注解标识,标识拦截方法的时机 ;@Before是在所拦截方法执行之前执行一段逻辑。
@After 是在所拦截方法执行之后执行一段逻辑。@Around是可以同时在所拦截方法的前后执行一段逻辑。
4:参数ProceedingJoinPoint pjp 通过pjp 可以获取注解信息,注解的参数,方法名,方法参数类型,方法参数等数据,然后对数据做一些统一处理。
spring --解析自定义注解SpringAOP(配合@Aspect)的更多相关文章
- 利用Spring AOP自定义注解解决日志和签名校验
转载:http://www.cnblogs.com/shipengzhi/articles/2716004.html 一.需解决的问题 部分API有签名参数(signature),Passport首先 ...
- (转)利用Spring AOP自定义注解解决日志和签名校验
一.需解决的问题 部分API有签名参数(signature),Passport首先对签名进行校验,校验通过才会执行实现方法. 第一种实现方式(Origin):在需要签名校验的接口里写校验的代码,例如: ...
- spring AOP自定义注解方式实现日志管理
今天继续实现AOP,到这里我个人认为是最灵活,可扩展的方式了,就拿日志管理来说,用Spring AOP 自定义注解形式实现日志管理.废话不多说,直接开始!!! 关于配置我还是的再说一遍. 在appli ...
- spring AOP自定义注解 实现日志管理
今天继续实现AOP,到这里我个人认为是最灵活,可扩展的方式了,就拿日志管理来说,用Spring AOP 自定义注解形式实现日志管理.废话不多说,直接开始!!! 关于配置我还是的再说一遍. 在appli ...
- 使用Spring Aop自定义注解实现自动记录日志
百度加自己琢磨,以下亲测有效,所以写下来记录,也方便自己回顾浏览加深印象之类,有什么问题可以评论一起解决,不完整之处也请大佬指正,一起进步哈哈(1)首先配置文件: <!-- 声明自动为sprin ...
- JAVA自定义注解SpringAOP
原文:https://my.oschina.net/wangnian/blog/801348 前言:Annotation(注解)是JDK5.0及以后版本引入的,它的作用就是负责注解其他注解.现在开发过 ...
- Spring aop+自定义注解统一记录用户行为日志
写在前面 本文不涉及过多的Spring aop基本概念以及基本用法介绍,以实际场景使用为主. 场景 我们通常有这样一个需求:打印后台接口请求的具体参数,打印接口请求的最终响应结果,以及记录哪个用户在什 ...
- Spring Cache 自定义注解
1.在使用spring cache注解如cacheable.cacheevict.cacheput过程中有一些问题: 比如,我们在查到一个list后,可以将list缓存到一个键对应的区域里:当新增.修 ...
- 结合spring 实现自定义注解
注解类 import java.lang.annotation.*; /** * Created by Administrator on 2016/6/28. */ //ElementType.MET ...
随机推荐
- 线程队列之阻塞队列LinkedBlockingQueue
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出).Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQ ...
- Python 实例3—三级菜单
老男孩培训学习: ''' Author:Ranxf ''' menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} } ...
- ajax的认识
1. ajax是一种技术,无需刷新页面即可向服务器传输.读写数据. 2. ajax的参数说明: 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为 ...
- Asp.net Core Windows部署
一. IIS 部署模式 1. 安装IIS服务 2. 下载安装Core SDK https://www.microsoft.com/net/download/Windows/build3 ...
- spark + yarn调试问题java.nio.channels.ClosedChannelException
spark客户端提交任务至yarn,后台抛错,FinalStatus:UNDEFINED. ./spark-submit --class org.apache.spark.examples.Spar ...
- Java-JVM调优常见配置举例
常见配置举例 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统 下,一般限制在1.5G~ ...
- 20145331 《Java程序设计》第8周学习总结
20145331 <Java程序设计>第8周学习总结 教材学习内容总结 14.NIO与NIO2 高级的输入输出处理,可以使用NIO(New IO),NIO2是文件系统的API Channe ...
- 重新想,重新看——CSS3变形,过渡与动画①
学习CSS3,觉得最难记忆的部分除了flex特性之外,就要属变形,过渡和动画部分了.作为初学者,总有种犯懒的心理,想着既然IE8浏览器都不完全支持CSS动画属性,还要考虑浏览器兼容问题,那么就不那么着 ...
- uboot的FIT功能
1.FIT介绍 Flattend Image Tree 英文原版介绍: FIT is formally a FDT, which can include images of various types ...
- Linux crontab命令 定时任务 用法详解以及no crontab for root解决办法
最近系统服务器进行搬迁,又恰好需要使用定时任务运行程序,而我的程序主要使用PHP写的,然后总结了下定时任务的用法,但是在这里主要写的是关于crontab命令的用法,使用过程中遇到不少问题,例如no c ...