Spring AOP+反射实现自定义动态配置校验规则,让校验规则飞起来

之前项目都是使用hibernate-validator来校验参数,但是实际上会出现一些小问题,就是校验规则都是通过注解的方式来完成,这样如果项目上线了,这个参数校验规则就没办法修改,如果出现校验规则问题,就必须修改后重新紧急上线(之前因为手机号码格式校验就出现过这个问题,因为新的号段不支持)。为了适应动态配置校验规则,在新起的项目我们就不再使用……

Spring注解@Async和@Transactional失效问题究竟是什么原因,强势解释一波

Spring的异步执行注解@Async,在调用这个方法的时候发现,不对劲,耗时的逻辑我已经加入到异步取做了,怎么接口请求的响应这么慢,赶紧看日志,懵X,加了异步注解,却没有异步执行。在项目中用到@Transactional注解实现事务是必须滴,但是有时候我们会发现在方法上加了@Transactional注解却出现灵异事件,在方法内出现异常,数据……

Spring AOP动态代理CGLIB、JDK的基本原理

AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和……

linux环境vim命令(编辑器)的使用

vim编辑器是linux环境下修改文件必备神器,你真的会用吗,进入输入i命令,进入编辑模式,然后上下飞快移动光标,鼠标选中目标复制粘贴,这样操作不方便也很慢,而且有点低(low)。如果现在需要定位到文档的某一行,你是否要去挨行去数,如果让你把文档中所有a修改为b,估计你会当场吐血身亡,所以下面的命令也许就是你想要的。

死磕Java并发:J.U.C之重入锁ReentrantLock

ReentrantLock还提供了公平锁也非公平锁的选择,构造方法接受一个可选的公平参数(默认非公平锁),当设置为true时,表示公平锁,否则为非公平锁。公平锁与非公平锁的区别在于公平锁的锁获取是有顺序的。但是公平锁的效率往往没有非公平锁的效率高,在许多线程访问的情况下,公平锁表现出较低的吞吐量……

静态代理、动态代理,以及动态代理的调用说明

代理模式分为静态代理和动态代理两种方式,静态代理是在开发的时候就写好代理的过程,并且代理类要和目标类实现同一个接口。而动态代理是代理类通过实现InvocationHandler接口完成,在运行期间动态的构建代理对象,在动态代理的实现过程中还有另一个更为重要的类Proxy,准确的来说,Proxy负责生成代理对象,而InvocationHandler是根据生成的代理对象……