1.自定义切面类
实现步骤
1.自定义切面类
public class Log { public void before(){ System.out.println("=============方法执行前=========="); } public void after(){ System.out.println("=============方法执行后=========="); } }
xml配置
<bean id="log" class="log.Log"/>
<aop:config> <!-- 使用自定义类型的切面--> <aop:aspect ref="log"> <!-- 定义切入点 执行什么动作--> <aop:pointcut id="pointcut" expression="execution(* service.MyServiceImpl.*(..))"/> <!-- 定义在那个切入点 执行那个方法--> <aop:before method="before" pointcut-ref="pointcut"/> <aop:after method="after" pointcut-ref="pointcut"/> </aop:aspect> </aop:config>
2.纯注解方式
1.自定义配置类
@Aspect//声明该类为配置类 @Component//该类注入到spring 容器中 public class Log { //声明方法在切入点前执行 括号里是要执行的动作 @Before("execution(* service.MyServiceImpl.*(..))") public void before(){ System.out.println("=============方法执行前=========="); } @After("execution(* service.MyServiceImpl.*(..))") public void after(){ System.out.println("=============方法执行后=========="); } }
2.开启自动配置
<aop:aspectj-autoproxy/>