Spring IoC,DI,AOP的一點理解

    首先關於IoC(Inversion of Control),字面意思即“控制反轉”,在Spring框架中,就是用來控制程序中對象的生命週期和對象之間關係的。
    以前我們編程時需要在A類中使用B類的對象,我們就需要new一個對象,使用完了還需要銷燬,有了IoC之後就不一樣了,省去了我們自己手動新建的步驟,類似於房產中介一樣,把我們需求傳遞給中介(Spring IoC),告訴他我需要這樣一個對象,你幫我找出來,加載好給我使用,用完了你幫銷燬,全程只要在適當的時候告訴Spring IoC容器我要使用了,其他工作都由Spring來處理。有了Spring之後所有的對象的創建銷燬都由Spring來控制,這樣就減小了程序中間的耦合度,使得程序可用性可擴展性更高。

    其次,DI(Dependency Injection,依賴注入),舉個例子:我們一個登陸驗證操作需要連接數據庫查詢比對數據,如果沒有Spring,通過簡單的Servlet實現的話,我們的步驟可能是:首先新建數據庫連接,然後才能操作數據庫,進行驗證...有了Spring 之後,這個建立連接的步驟就可以交由Spring來操作,至於什麼時候建立,什麼時候關閉,我不用管,我只要在我要用這個連接的時候,由Spring注入給我就行了(類似於打針一樣),Spring會在適當的時候新建這個連接,然後注入到需要這個連接的類中。這個類需要依賴這個連接才能正常運作,而這個連接不是自己新建的而是由Spring容器幫忙新建然後注入到類中的,這就是依賴注入名字的由來。

    最後AOP(Aspect Oriented Programming,面向切面編程),通俗一點的解釋就是:我本來需要按照順序12345..依次做某些事情,然而計劃趕不上計劃,做完第二件事,我突然有急事需要去處理,在我做完急事之後,繼續回來做第三件事,最終也能達到目的!這就是AOP,在業務處理過程中,做了其他事情也不會影響這個業務的正常處理完成!一般用於日誌打印,權限控制等等操作。AOP最大的好處就是將與業務邏輯處理無關的代碼分離開來,即時後期刪除了這些代碼,也不會影響正常業務的運行處理,大大提高了程序的可擴展性,減小了業務邏輯類的處理負擔。

    看了一些文章,總結了一下,有不對的地方敬請各位大神指正!!!謝謝!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章