Springboot CGLIB 代理对象问题

这里只写我遇到的问题

1、属性访问修饰符问题

java 复制代码
 @Autowired
 protected Service service;

因为对象为protected,然后注入失败,service为null,所以会调用报错,应改为private。

无论是构造器注入,还是set方法注入 一样也适用。

2、方法访问修饰符问题

java 复制代码
 @GetMapping("method")
 private Response method() {}

因为方法为private 导致代理对象无法成功转发到目标对象,应改为public。

上面两种情况都会让service为null 一个是因为目标对象service为null,一个是调用到代理对象上的service,这个service本身就是null。

结论:总结来说,接口调用之所以能成功,是因为 方法调用 触动了代理的拦截器,从而将执行权转移到了持有真实数据的 目标对象 上。而字段访问失败,正是因为这个操作绕过了整个拦截和转发机制。

相关推荐
xujinwei_gingko1 小时前
SpringBoot整合WebSocket
spring boot·后端·websocket
wang09072 小时前
自己动手写一个spring之IOC_2
java·后端·spring
来杯@Java3 小时前
学生选课管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·maven·mybatis
invicinble3 小时前
easyexcel开发全域理解
spring boot
豆瓣鸡3 小时前
Spring Cloud笔记
spring·spring cloud
不知名的老吴4 小时前
线程的生命周期之线程“插队“
java·开发语言·python
ANnianStriver4 小时前
PetLumina-02-后端开发与前后端联调
java·ai·sa-token
云烟成雨TD4 小时前
Spring AI 1.x 系列【56】用大模型评判大模型:递归顾问实现自动化评估方案
人工智能·spring·自动化
杨了个杨89824 小时前
Keepalived + Nginx + HAProxy 高可用架构部署实战案例
java·nginx·架构