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。

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

相关推荐
好好沉淀5 小时前
开发过程中动态 SQL 中where 1=1的作用是什么
java·服务器·开发语言·数据库·sql
Javatutouhouduan5 小时前
SpringBoot整合reids之JSON序列化文件夹操作
java·spring boot·spring·bootstrap·html·后端开发·java架构师
曲莫终5 小时前
springboot集成h2内存数据库运行测试用例
数据库·spring boot·测试用例
她说..5 小时前
Spring AOP场景5——异常处理(附带源码)
java·数据库·后端·spring·springboot·spring aop
醇氧5 小时前
springAI学习 (二) 模型
java·学习·spring·ai·ai编程
风月歌5 小时前
小程序项目之驾校报名小程序源代码(java+vue+小程序+mysql)
java·vue.js·mysql·小程序·毕业设计·源码
毕设源码-赖学姐5 小时前
【开题答辩全过程】以 高校课程建设管理系统为例,包含答辩的问题和答案
java·eclipse
05大叔5 小时前
苍穹外买Day05
java·开发语言
代码or搬砖5 小时前
Java集合-List讲解
java·开发语言·list