Spring AOP 原理:JDK動態(tài)代理
動態(tài)代理實現(xiàn)原理:一個實現(xiàn)接口的類可以做動態(tài)代理顷锰。我們需要實現(xiàn)的步驟是:
首先再寫一個方法實現(xiàn)一個InvocationHandler接口悍引,方法調(diào)用會被轉(zhuǎn)發(fā)到該類的invoke()方法家肯。
然后在需要使用Hello的時候倦挂,通過JDK動態(tài)代理獲取Hello的代理對象畸颅。
以上是JDK動態(tài)代理的實現(xiàn),我們在實現(xiàn)了invocationhandler接口的invoke方法中可以實現(xiàn)我們的邏輯操作方援,類中需要接口引用没炒,帶有接口引用為參數(shù)的有參構(gòu)造方法,重寫invoke方法
在我們需要代理的時候?qū)懭脒@些代碼
Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler handler)
參數(shù)1犯戏,實現(xiàn)接口也就是代理對象的類加載器
參數(shù)2送火,實現(xiàn)的接口
參數(shù)3,實現(xiàn)invocationhandler接口的類
因此先匪,JDK代理會把所有實現(xiàn)接口的方法轉(zhuǎn)發(fā)到invocationhandler中的invoke方法中种吸,我們可以在這里實現(xiàn)任何的邏輯要求
AOP使用場景概述:
Persistence 持久化
Synchronization 同步
Transactions 事務(wù)
Spring IOC和SpringDI原理:Java反射
IOC容器通過Java反射技術(shù)利用Java注解(Autowired和Resource)根據(jù)配置文件初始化對象注入到類中
IOC初衷:為了解耦
依賴注入(DI)和控制反轉(zhuǎn)(IOC)是從不同的角度的描述的同一件事情,就是指通過引入IOC容器胚鸯,利用依賴關(guān)系注入的方式骨稿,實現(xiàn)對象之間的解耦。
依賴注入(DI)和控制反轉(zhuǎn)(IOC)是從不同的角度的描述的同一件事情姜钳,就是指通過引入IOC容器坦冠,利用依賴關(guān)系注入的方式,實現(xiàn)對象之間的解耦哥桥。
SpringIOC其實是IOC思想的一種實現(xiàn)
參考博文: