javaConfig 配置AOP 注意事项
Posted 闲言_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaConfig 配置AOP 注意事项相关的知识,希望对你有一定的参考价值。
前言
- 今天心血来潮想重温一遍spring 纯注解开发,在编写注解AOP的时候遇到一个问题,发现自定义的切面类不起作用,在切面类上添加@Aspect 注解、@Component 注解了,配置类也扫描该包了,就是不起作用,也不抛出异常,后面通过百度才发现还需要在配置类中添加@EnableAspectJAutoProxy注解,表示开启AOP 代理自动配置
配置类代码
/**
* @Classname MyConfig
* @Description 配置类
* @Date 2021/5/17 19:55
* @Created by 闲言
*/
@Configuration
@ComponentScan(basePackages = {"cn.bloghut.log"})
@EnableAspectJAutoProxy
public class MyConfig {
@Bean
public UserService getUserService(){
return new UserServiceImpl();
}
}
切面类代码
/**
* @Classname Logs
* @Description 自定义切面类
* @Date 2021/5/17 19:58
* @Created by 闲言
*/
@Aspect
@Component
public class Logs {
/**
* 定义切入点
*/
@Pointcut("execution(* cn.bloghut.service.impl.UserServiceImpl.*(..))")
public void pit() {
}
@Before("pit()")
public void before(){
System.out.println("===========before 前置通知===========");
}
@After("pit()")
public void after(){
System.out.println("============after 后置通知=============");
}
}
业务层代码(接口)
在这里插入代码片
/**
* @Classname UserService
* @Description 用户CRUD 接口
* @Date 2021/5/17 19:55
* @Created by 闲言
*/
public interface UserService {
/**
* 添加方法
*/
void add();
/**
* 删除方法
*/
void delete();
/**
* 修改方法
*/
void update();
/**
* 查找方法
*/
void query();
}
业务层代码(实现类)
/**
* @Classname UserServiceImpl
* @Description 用户接口实现类
* @Date 2021/5/17 19:56
* @Created by 闲言
*/
@Service
public class UserServiceImpl implements UserService {
public void add() {
System.out.println("add 方法执行了");
}
public void delete() {
System.out.println("delete 方法执行了");
}
public void update() {
System.out.println("update 方法执行了");
}
public void query() {
System.out.println("query 方法执行了");
}
}
测试类
/**
* @Classname Test
* @Description 测试类
* @Date 2021/5/17 20:01
* @Created by 闲言
*/
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(MyConfig.class);
UserService userService = ac.getBean("getUserService", UserService.class);
userService.delete();
}
}
输出结果
===========before 前置通知===========
delete 方法执行了
============after 后置通知=============
以上是关于javaConfig 配置AOP 注意事项的主要内容,如果未能解决你的问题,请参考以下文章