spring的兩大利器IOC和aop,談談對它們的理解

AOP

aop面向切面編程是什麼呢

我理解的aop是面向規則編程,定一個規則然後所有的bean都要遵守這個規則。

1.Aspect切面

就是相當於把所有的bean裏面的都會調用的方法A,這個方法A就相當於一個切面。可以在一個類中定義切點。

2.JoinPoint連接點

通常作用方法,獲取獲得這個方法的參數啊,返回值啊。

3.PointCut切入點

這個就比較好理解了,就是規則的作用域,你想讓你這個規則作用與哪個類,哪個包下。

4.advice通知

一個方法執行前後還有異常都會產生一個通知。

通知又分好幾種:

1.Before

方法執行前的通知,你可以在方法執行前做一些處理

2.After

放在執行後的通知,你可以在方法執行後做一些處理

3.AfterReturn

方法執行後得到返回值的通知。

4.AfterThrowing

方法發生異常的通知

5.Around

環繞通知,方法完成前後通知

 

下面通過demo演示

Aop實現

 

 

Controller:

測試一下:

 

通過打印log我們可以看出AOP已經起了作用。

那麼AOP能實現什麼功能呢?

事物管理(Translation)

日誌

權限

緩存

還有很多,我們可以在方法前後做很多東西根據你的業務做一些自定義功能。

 

以上就是AOP

 

 

BeanFactory和FactoryBean的區別,這也是面試遇到的問題之一。

我認爲:

首先beanFactory是一個bean工廠,配置註冊使用bean,可以看到源碼裏面的getBean()方法就是從ioc容器取出bean,

 

FactoryBean是一個bean,一個特殊的bean,相當於一個工廠可以生產一個bean的實例,內部getObject()就是生產一個bean的具體實現。spring 在和mybatis整合的時候原理用的是jdk的動態代理然後返回一個bean的實例,就是用factorybean產生的。

 

 

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