springboot中aop的使用
2024-09-02 11:01:05
Spring AOP(Aspect Oriented Programming),即面向切面编程,是OOP(Object Oriented Programming,面向对象编程)的补充和完善。
OOP引入的核心概念包括:封装,继承和多态等;
AOP则可以深入到方法内部,在某个切入点或者切面处采取静态”织入”的方式,在尽量不影响和改动原有代码的基础上,将新功能融入到原有的核心业务逻辑中。
在pom中引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
创建日志注解:
@Documented
@Inherited //注解可被标注类的子类继承
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface TKLog {
/**
* 描述
*/
String description() default "";
}
创建aop的处理器:
@Slf4j
@Aspect
@Component
public class LogInterceptor {
//标注切入点,即标有@TKLog的类
//@within:拦截被注解标注的类的所有方法,@annotation:拦截被注解的方法
@Pointcut("@within(com.tk.spring.aop.annotation.TKLog)")
public void pointcut() { } //当标有@TKLog的类中的方法被调用前后,该方法会被执行
@Around("pointcut()")
public void doExecute(ProceedingJoinPoint point) throws Throwable {
log.info("方法即将执行:" + point.getSignature().getName());
Object result = point.proceed();
log.info("方法执行结束:" + result.toString());
}
}
最后在需要的controller层中添加@TKLog注解以及启动类加@EnableAspectJAutoProxy,就可以进行日志打印。
最新文章
- 提供程序不支持 DatabaseExists
- 修正 ColorPanel 选色缓慢问题
- makefile详解 嵌套执行make,定义命令包
- shelll函数求两个输入数字之和
- 微软开放技术发布开源的微软云服务器底盘管理器 (Chasis Manager) 软件
- MySQL创建用户权限结果Trigger失败
- 使IIS Express支持其他网络客户端访问
- .NET Reflector 7.6.1.824安装及破解(刚试了,绝对能用)
- Linux 内核协议栈之TCP连接关闭
- [Swift]LeetCode151. 翻转字符串里的单词 | Reverse Words in a String
- Java 8 新特性:6-Optional类
- Fluent动网格【5】:部件变形
- Linux修改/etc/profile配置错误command is not found自救方法
- 分类算法之朴素贝叶斯分类(Naive Bayesian classification)
- 缓存中使用的ReentrantReadWriteLock锁
- pages bookmarks for machine learning domain
- 第三次Scrum编码冲刺!!!
- 20155323 第四次实验 Android程序设计实验报告
- git pull时出现vim窗口的解决办法
- Linq to SQL Like Operator