自从上班之后,就很少再看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