Spring AOP 注解配置框架部署
添加Spring依赖
Spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<context:annotation-config></context:annotation-config>
<context:component-scan base-package="com.cg"></context:component-scan>
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
</beans>
AOP注解配置案例
@Component
@Aspect
public class TransactionManager {
@Pointcut("execution(* com.cg.dao.*.*(..))")
public void pc1(){}
@Before("pc1()")
public void begin(){
System.out.println("~~~~开启事务");
}
@After("pc1()")
public void commit(){
System.out.println("~~~~提交事务");
}
@Around("pc1()")
public Object printExecuteTime(ProceedingJoinPoint point) throws Throwable {
long time1 = System.currentTimeMillis();
Object v = point.proceed();
long time2 = System.currentTimeMillis();
System.out.println("----time:"+(time2-time1));
return v;
}
}