分析Java中写了个AOP问题
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容介绍了"分析Java中写了个AOP问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!今天小A
千家信息网最后更新 2025年01月20日分析Java中写了个AOP问题
本篇内容介绍了"分析Java中写了个AOP问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
今天小A同学来了一家公司入职,发现公司的代码对于日志的处理非常不好,全部都是在代码中直接采用硬编码输出,没有统一进行处理。代码如下
小A同学,立刻就想到了,是不是可以通过AOP来对项目的日志进行统一操作呢?说起来就直接写起来代码
然后开发完成后,小a就进行了简单的测试,发现aop正常运行,达到效果
然后小A就将项目上线了,上线1min后,突然线上有很多方法报错,出现NPE异常
赶紧代码回滚,后期小A进行代码排查,发现竟然项目中有人将controller中的方法写成了private
最关键的是,没加aop之前,方法正常运行,一旦加了aop,UserService发现无法注入到spring容器中,从而导致NPE。
分析原因
Spring处理@autowire注解在bean实例化时候,初始化之前。而controller类生成代理在 bean初始化之后生成,此时虽然代理继承controller对象的属性,有@autowire注解,但是spring已经不处理@autowire注解了。
因此,原来的controller在spring中正常生成,autowire生效,代理在spring中是后来才加入到容器中,autowire不生效。
由于private的方法不会被代理类调用到原类,因此拿不到注入的属性。而public方法是可以的。
所以才会出现如下现象
"分析Java中写了个AOP问题"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
代码
方法
代理
处理
分析
注解
项目
生成
问题
公司
内容
同学
容器
属性
日志
更多
知识
输出
运行
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
多部门联合网络安全宣传活动
计算机网络技术升本能学什么专业
金格数据库
浅谈数据库技术的应用
囯泰安数据库季度数据
列举网络安全案例
2017软件开发平均薪资
网络安全威胁及预防方法
英国金玉恒通服务器
服务器IBM安全模式
魔兽怀旧服务器
计算机网络技术几个人
跑腿软件开发成本多少钱
天天飞网络技术
怎么引导数据库
网络安全纳入乡镇班子会
网易游戏关闭服务器
青岛云触网络技术 近邻
媒体针对网络安全的具体措施
三种常用的网络技术
计算机二级数据库vfp
浪潮高密度服务器怎么安装
共创网络安全共建网络文明心得
关于网络安全答题活动开展的简报
乐彩长虹互联网科技有限公司
朝阳服务器回收中心
小学网络安全教育手抄报内容
完美服务器弹道
厦门合库互联网科技有限公司
计算机网络技术包括哪些课程