首页 > 代码库 > spring-aop的简单实例注解版

spring-aop的简单实例注解版

技术分享

项目结构如图,基本的spring的配置就不在赘述

1.首先编写自定义的切面类

package org.wu.test;

import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
@Component
@Aspect
public class DIv {
@Pointcut("execution(* org.wu.test.WyzController.say(..))")
public void aspect(){

}

@Before("aspect()")
public void dobefore(){
System.out.println("开始");
}
@AfterReturning("aspect()")
public void doAfter(){
System.out.println("结束");
}

}

@Component:然组件扫描注入到spring容器管理
@Aspect 指定切面类

@Pointcut() 指定切入点

@Before("aspect()")前置通知

 

package org.wu.test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler;

@Controller
public class WyzController {
@Autowired
private Wyz wyz;

@RequestMapping("/say")
public String say() throws Exception {
wyz.say();
return "";
}

}要操作的类,就是把切面的作用指定带这个类的say方法上

这就完成了一个很简单的aop应用实例

spring-aop的简单实例注解版