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。

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

相关推荐
oddsand112 小时前
Redis网络模型
java·数据库·redis
皮卡祺q12 小时前
【redies0-导论】分布式系统的演进-引进redis原因
java·数据库·redis
roman_日积跬步-终至千里12 小时前
如何分析复杂架构:一套真正能落地的方法
java·开发语言·架构
武子康13 小时前
Java-02 深入浅出MyBatis 3 快速入门:环境配置、项目创建与 CRUD 操作
java·后端
Don.TIk13 小时前
ChapterOne-搭建项目骨架
java·spring·spring cloud·mybatis
Don.TIk13 小时前
ChaperTwo-整合 SaToken 实现 JWT 登录功能
java·开发语言
qq_25183645713 小时前
基于java Web汽车销售管理系统设计与实现
java·前端·汽车
南极企鹅13 小时前
事务&@Transactional注解
java·数据库·spring·oracle·mybatis
yaoxin52112313 小时前
406. Java 文件操作基础 - 字符与二进制流
java·开发语言·python
happymaker062613 小时前
SpringBoot学习日记——DAY02(SpringBoot整合Swagger3)
java·spring boot·学习