AOP與IOC

1. 什麼是AOP?

核心思想:動態的添加和刪除切面上的邏輯而不影響原來的執行代碼。

面向切面編程(AOP)完善spring的依賴注入,在spring中主要表現爲兩個方面

》》面向切面編程提供聲明式事務管理

》》spring支持用戶自定義的切面

面向切面編程是對面向對象編程的補充。將程序的運行過程分解成各個切面。

兩個特徵:

》》各個步驟之間良好的隔離性

》》源代碼無關性

spring的事務管理實現的原理,就是通過一個動態代理對所有需要事務管理的Bean進行加載,並根據配置在invoke方法中對當前調用的方法名進行判定,並在method.invoke方法前後爲其加上合適的事務管理代碼,這樣就實現了spring式的事務管理。

相關概念:

JoinPoint:  連接點,加入切面邏輯的位置(程序執行過程中明確的點,如方法調用或者特定的異常被拋出。) 

@Before("execution(* com.spring.service..*.*(..))")

PointCut:  切入點。JoinPoint的一個集合。指定一個通知將被引發的一系列的連接點的集合。

@Pointcut("execution(* com.spring.service..*.*(..))")
    public void myMethod(){};

    @Before("myMethod()")
    public void before(){
        System.out.println("before");
    }
--------------------- 
作者:半壁燈 
來源:CSDN 
原文:https://blog.csdn.net/VirusLL/article/details/76099685 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

Aspect:切面類,方面,

Advice:通知。在特定的連接點,AOP框架執行的動作。切面點上的業務邏輯  @Before;@AfterReturning; ......

Target:被代理或者被通知的對象。包含連接點的對象。POJO

Weave: 織入。將切面邏輯添加到原來執行代碼的過程

Struts2中的攔截器就是AOP的一種實現。

參考:https://www.cnblogs.com/superjt/p/4275462.html

https://blog.csdn.net/MoreeVan/article/details/11977115

2.什麼是IOC

控制反轉,一種設計思想,將你設計好的對象交給容器(spring容器)控制,而不是傳統的在你的對象內部直接控制。創建對象的控制權轉移。

IOC和DI:同一個概念的不同角度描述。

DI:依賴注入:由容器動態地將某個依賴關係注入到組價之中。(控制的什麼被反轉了,獲得依賴對象的方式反轉了。)

參考:https://blog.csdn.net/qq_22654611/article/details/52606960

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章