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。

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

相关推荐
咖啡八杯13 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路17 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
Java陈序员19 小时前
企业级!一个基于 Java 开发的开源 AI 应用开发平台!
spring boot·agent·mcp
像我这样帅的人丶你还20 小时前
Java 后端详解(五):Redis 缓存
java·后端·全栈
plainGeekDev1 天前
GreenDAO → Room
android·java·kotlin
杨运交1 天前
[041][公共模块]分布式唯一ID生成器设计与实现:一款灵活可扩展的雪花算法框架
spring boot
亦暖筑序1 天前
Java 8老系统AI Workflow实战:把一次性AI对话升级成可恢复工作流
java·后端
敲代码的彭于晏1 天前
Bean 生命周期完全图解:前端同学也能看懂的 Spring 核心机制
java·前端·后端
plainGeekDev1 天前
ButterKnife → ViewBinding
android·java·kotlin
像我这样帅的人丶你还2 天前
Java 后端详解(四):分页与搜索
java·javascript·后端