由于程序现在要求支持多数据源,但是程序已经上线想要修改非常麻烦。于是想到用aop做个切面,执行前切换数据源。spring很多功能都支持xml和注解,这里直接使用注解,因为个人爱好吧。
首先是spring配置文件的命名空间里
代码语言:javascript复制xmlns:aop="http://www.springframework.org/schema/aop"
schema声明:
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
然后配置里加上
代码语言:javascript复制<aop:aspectj-autoproxy/>
代码很简单:
代码语言:javascript复制package test.mine.spring.bean;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class AopTest {
public AopTest (){
}
@Pointcut("execution(* *.test())")
public void testpoint(){}
@Before("testpoint()")
public void before(){
System.out.println("执行前!");
}
@AfterReturning("testpoint()")
public void after(){
System.out.println("执行后");
}
}
execution表达式的格式下面是我找的一个博客,讲的比较详细,我就不细说了表达式说明