aop 导致 @Value 获取不到配置文件数据的问题
最近遇到一个很头疼的问题,自己自定义了一个注解,然后在同一个类里面,加在了 a 方法上,结果导致另一个没有加注解的 b 方法莫名奇妙获取不到配置文件里面的数据了,a 和 b 方法没有任何联系,打了断点,也没有看到访问 b 方法进来了 aop ,而 a 方法一切都正常;去掉 a 方法的注解,b 就正常了,真的很懵逼,最后发现,竟然是 b 方法,使用了 private 修饰导致的,天坑,换成 public ,一切恢复正常。
注意:aop 不能用 private 修饰,会导致 spring 注入的对象失效,不单单是 @Value 引入的配置文件参数,基本使用 @Autowired ,@Service ,等注解引入的对象,也都会失效变成 null。
- 作用在了静态变量上;
- 作用在了常量上;
- 在除@Service/@RestController/@Component之外的非注册类上使用
- 使用这个类时用new的方式生成实例
以及上面这几种情况,也会导致失效
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通