SpringAOP 注解方式

pom.xml
<!-- 添加spring-aop相应的jar包 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>${spring.version}</version>
</dependency>
AopConfigure.java(切面配置对象)
@Aspect
@Component
public class AopConfigure {
    
    @Pointcut("execution(* com.lwb.*.*.*(..))")
    public void  recordLog() {}
    
    @Before("recordLog()")
    public void before() {
        System.out.println("Before Attention!");
    }
    
    @After("recordLog()")
    public void after() {
        System.out.println("After Attention!");
    }
    
    /**
     * @param pjp
     * @param demoAno 注解类形参
     * @throws Throwable
     */
    @Around("recordLog() && @annotation(demoAno)")
    public void around(ProceedingJoinPoint pjp , DemoAno demoAno) throws Throwable {
        System.out.println("DemoAno annotation attribute desc: " + demoAno.desc());
        System.out.println("DemoAno annotation attribute num: " + demoAno.num());
        System.out.println("Around Attention!");
        pjp.proceed();
        System.out.println("After Exeute Around");
    }
}

 ——————————————————————————————————————————————————————分割线————————————————————————————————————————————————————————

/* 需要在Spring配置文件中开启aop的自动代理 */
<aop:aspectj-autoproxy/>
单元测试&运行结果
@Test
public void five() {
    //加载Spring配置文件
    ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-application.xml");
    //通过Spring上下文对象获取OneService对象实例
    OneService oneService = (OneService) context.getBean("oneService");
    //执行one()方法
    oneService.one();
}
运行结果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. Java基础部分.................................................
    wy_sure阅读 3,835评论 0 11
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,603评论 0 4
  • spring官方文档:http://docs.spring.io/spring/docs/current/spri...
    牛马风情阅读 1,726评论 0 3
  • 本章内容: 面向切面编程的基本原理 通过POJO创建切面 使用@AspectJ注解 为AspectJ切面注入依赖 ...
    谢随安阅读 3,193评论 0 9
  • Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和...
    Java小辰阅读 1,103评论 0 14