一、手動注入失敗解決方案
修改SpringBoot的默認動態代理模式,默認的是Java的動態代理模式,需要修改爲CGLIB動態代理模式;
在application.properties加入如下配置:
#開啓CGLIB動態代理模式
spring.aop.proxy-target-class=true
二、手動注入bean
https://blog.csdn.net/weixin_36524613/article/details/85258937
三、動態代理與靜態代理
靜態代理:
由程序員創建或特定工具自動生成源代碼,再對其編譯。在程序運行前,代理類的.class文件就已經存在了。
動態代理:
在程序運行時,運用反射機制動態創建而成。
四、jdk動態代理與cglib動態代理
JDK的動態代理;
JDK的動態代理依靠接口實現,如果有些類並沒有實現接口,則不能使用JDK代理,這就要使用cglib動態代理了。
Cglib動態代理 ;
JDK的動態代理機制只能代理實現了接口的類,而不能實現接口的類就不能實現JDK的動態代理,cglib是針對類來實現代理 的,他的原理是對指定的目標類生成一個子類,並覆蓋其中方法實現增強,但因爲採用的是繼承,所以不能對final修飾的類進 行代理。