** * AbstractRoutingDataSource mysql多数据源切换 * * 继承AbstractRoutingDataSource 接口 重写方法 获取key调用数据源 * * 自定义注解 * * aop 在usermapper的方法执行前进行数据源的的切换 * * aop的注解可以除了execution 可以使用 annotation注解 * */ @Aspect @Component public class DataSourceAop { /** * 通过注解形式 代理executor()表达式 * 想要获取注解中的值 可以给注解起一个名字 参数使用注解类型 形参名称与枚举表达式名称一致 * 可以通过参数.value()获取值 * @param ds */ @Before("@annotation(ds)") public void setDataSource(TargetAnnotation ds){ DataSourceThreadLocal.set(ds.value()); } /** * 表达式也可以直接写 注解的全类名 可以判断是否有该注解 */ @After("@annotation(com.jjyy.annotation.TargetAnnotation)") public void removeDataSource(){ DataSourceThreadLocal.remove(); } }
spring的aop的增强应用(使用注解,不使用executor表达式)
最新推荐文章于 2024-08-19 14:51:10 发布