Spring:注解方式启用AOP

@EnableAspectJAutoProxy

proxyTargetClass=true:强制使用cglib动态代理

exposeProxy=true在当前线程暴露代理对象,这样就可以通过AopContext.currentProxy来拿到代理对象

复制代码
package cn.edu.tju.service5;


import org.springframework.aop.framework.AopContext;
import org.springframework.aop.framework.AopProxy;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.stereotype.Service;

@Service
@EnableAspectJAutoProxy(exposeProxy = true, proxyTargetClass = true)
public class InfoService {
    public String getHelloInfo(String str){
        return "hello,"+str;
    }
    public String getHiInfo(String str){
        //System.out.println(getHelloInfo("chopin"));
        System.out.println(((InfoService) AopContext.currentProxy()).getHelloInfo("chopin"));
        return "hi,"+str;
    }
    final public String getGreeting(String str){
        return "hay,"+str;
    }
}

当一个AOP方法调用了本类中另一个AOP方法时,被调用的AOP方法将失效,就像上述代码被注释掉的那样,AOP将失效。

AopContext使用的是ThreadLocal技术。

方法是private AOP失效。

相关推荐
oioihoii几秒前
C++语言演进之路:从“C with Classes”到现代编程基石
java·c语言·c++
N***73856 分钟前
SQL锁机制
java·数据库·sql
Java天梯之路10 分钟前
Java 初学者必看:接口 vs 抽象类,到底有什么区别?
java·开发语言
小熊officer21 分钟前
Nginx中正向代理,反向代理,负载均衡
java·nginx·负载均衡
ziwu27 分钟前
昆虫识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
后端·图像识别
信码由缰33 分钟前
Java 应用容器化与部署
java
三翼鸟数字化技术团队34 分钟前
基于redis的多资源分布式公平锁的设计与实践
redis·后端
今天没有盐40 分钟前
Scala Map集合完全指南:从入门到实战应用
后端·scala·编程语言
LSTM9740 分钟前
如何使用 C# 将 RTF 转换为 PDF
后端
Jing_Rainbow41 分钟前
【AI-7 全栈-2 /Lesson16(2025-11-01)】构建一个基于 AIGC 的 Logo 生成 Bot:从前端到后端的完整技术指南 🎨
前端·人工智能·后端