一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java中寫了個AOP,差點被開除

Java中寫了個AOP,差點被開除

2020-11-18 23:03今日頭條低調的干貨君 Java教程

今天小A同學來了一家公司入職,發現公司的代碼對于日志的處理非常不好,全部都是在代碼中直接采用硬編碼輸出,沒有統一進行處理。

為了說明這個問題,作者就采用偽代碼+故事的方式描述了。

今天小A同學來了一家公司入職,發現公司的代碼對于日志的處理非常不好,全部都是在代碼中直接采用硬編碼輸出,沒有統一進行處理。代碼如下

Java中寫了個AOP,差點被開除

小A同學,立刻就想到了,是不是可以通過AOP來對項目的日志進行統一操作呢?說起來就直接寫起來代碼

Java中寫了個AOP,差點被開除

然后開發完成后,小a就進行了簡單的測試,發現aop正常運行,達到效果

Java中寫了個AOP,差點被開除

然后小A就將項目上線了,上線1min后,突然線上有很多方法報錯,出現NPE異常

Java中寫了個AOP,差點被開除

趕緊代碼回滾,后期小A進行代碼排查,發現竟然項目中有人將controller中的方法寫成了private

Java中寫了個AOP,差點被開除

最關鍵的是,沒加aop之前,方法正常運行,一旦加了aop,UserService發現無法注入到spring容器中,從而導致NPE。

分析原因

Spring處理@autowire注解在bean實例化時候,初始化之前。而controller類生成代理在 bean初始化之后生成,此時雖然代理繼承controller對象的屬性,有@autowire注解,但是spring已經不處理@autowire注解了。

因此,原來的controller在spring中正常生成,autowire生效,代理在spring中是后來才加入到容器中,autowire不生效。

由于private的方法不會被代理類調用到原類,因此拿不到注入的屬性。而public方法是可以的。

所以才會出現如下現象

Java中寫了個AOP,差點被開除

Java中寫了個AOP,差點被開除

結論

controller方法中,不要寫private的RequestMapping方法,否則一不小心就入坑。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲视频免 | 69热精品视频在线看影院 | 粉嫩高中生第一次不戴套 | 国产色图片 | 亚洲国产成人99精品激情在线 | 国产99在线观看 | 91久久线看在观草草青青 | babes性欧美30 | 99精品国产美女福到在线不卡 | 翁熄性放纵交换300章 | 免费看一级a一片毛片 | 草莓视频在线观看免费 | 激情五色月| 亚洲2017天堂色无码 | 青春草视频在线免费观看 | 免费观看小视频 | 人人爽人人香蕉 | 免费观看伦理片 | 国产日日操 | 日本一区二区三区在线 观看网站 | 九九精品免视看国产成人 | 色偷偷亚洲综合网亚洲 | 俄罗斯美女破苞 | 2018亚洲男人天堂 | 古装床戏做爰无遮挡三级 | 亚洲高清国产拍精品影院 | 福利国产片| 亚洲高清网站 | katsuniav在线播放 | 青草热视频 | 色综合国产 | 我把校花黑色蕾丝胸罩脱了 | 四虎影剧院 | 俄罗斯伦理片 | 亚洲热在线视频 | 国产福利在线观看91精品 | 日本xxxx18vr69| 国产色司机在线视频免费观看 | 久久天堂成人影院 | 亚洲成人中文 | www在线观看视频免费 |