zoukankan      html  css  js  c++  java
  • SpringAOP学习第一天 @Pointcut注解

    自从上班之后,就很少再看AOP相关的内容,几年时间里虽然也有一两次完整看过,一直没有机会用到,都忘记了。今天重温一下

    TestNG测试类

    package com.test.spring.aop.mineunderstatnd1;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
    import org.testng.annotations.Test;
    
    @ContextConfiguration(classes={AppConfig.class})
    public class RechargeTest extends AbstractTestNGSpringContextTests{
        
        @Autowired
        private AccountRecharge accountRecharge;
    
        @Autowired
        private Interceptor interceptor;
    
        @Test
        public void test() {
            Map request = new HashMap();
            accountRecharge.execute(request);
        }
    }

    业务类

    package com.test.spring.aop.mineunderstatnd1;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
    import org.testng.annotations.Test;
    
    @ContextConfiguration(classes={AppConfig.class})
    public class RechargeTest extends AbstractTestNGSpringContextTests{
        
        @Autowired
        private AccountRecharge accountRecharge;
    
        @Autowired
        private Interceptor interceptor;
    
        @Test
        public void test() {
            Map request = new HashMap();
            accountRecharge.execute(request);
        }
    }

    切面类

    @Aspect
    public class Interceptor {
        @Pointcut("execution(* com.test.spring.aop.mineunderstatnd1.AccountRecharge.execute(java.util.Map)) && args(request)")
        public void execute(HashMap request){}
        @Before("execute(request)")
        public void before(HashMap request) {
            System.out.println("前置拦截器");
        }
    }

    配置类

    package com.test.spring.aop.mineunderstatnd1;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.EnableAspectJAutoProxy;
    
    @Configuration
    @EnableAspectJAutoProxy
    @ComponentScan
    public class AppConfig {
        @Bean
        public AccountRecharge AccountRecharge() {
            return new AccountRecharge();
        }
        @Bean
        public Interceptor interceptor() {
            return new Interceptor();
        }
    }

    运行结果:

    前置拦截器
    do recharge
    PASSED: test
  • 相关阅读:
    JDK API文档下载
    idea技巧:查看一个类的所有子类以及子类的子类并以层级关系显示
    Vue项目优化
    deepin 安装netcore 记录
    UOS 下的VScode 使用经验
    UOS操作系统磁盘空间不够一例
    SRPBatcher优化的原理
    我的UOS生活
    假如美国禁用了Unity3D和Unreal怎么办
    BGFX学习笔记01
  • 原文地址:https://www.cnblogs.com/heben/p/7277446.html
Copyright © 2011-2022 走看看