前言
控制反轉依賴注入(IOC)及AOP是spring的核心功能,spring使用xml檔案完成配置,基本上已經廢棄,目前主流的是使用注解的方式完成這兩項功能。以下通過示例,示範注解的方式,實作IOC和AOP。
建立maven工程
輸入工程名稱,完成工程建立。打開pom檔案,加入spring依賴包
在main目錄下加入resource檔案夾,并将其設定為Resources Root
在resources檔案夾下,建立spring配置檔案,applicationContext.xml
IOC代碼編寫
在com.bjwl下建立services包,添加CustomerService接口和CustomerServiceImpl實作類,目錄結構如下圖所示
其中,CustomerServiceImpl實作代碼如下:
劃線部分就是對應的注解。
告訴spring容器,需要進入容器的類。修改applicationContext.xml檔案,修改内容如下:
此時,idea會提示需要加入context依賴包,根據提示,alt+enter即可
IOC測試
打開CustomerServiceImpl類檔案,使用菜單(見下圖)或快捷鍵Ctrl+Shift+T,建立測試類
寫測試代碼如下:
點選play()前綠色按鈕運作,執行結果如下:
反思:已經完成依賴注入的功能,這樣我門的調用方與其依賴的對象呈現松耦合,調用方測似類中使用接口完成對象的定義,如果使用者的業務發生變化時,我們僅需要新增一個實作CustomerService接口的類,将注解更改到新擴充的類上即可完成更改,符合開閉原則
AOP示例代碼編寫
建立包aspect,添加類log如下圖:
如果遇到以下情況
點選圖中依賴包,由maven自動添加
修改配置檔案applicationContext.xml檔案,添加AOP配置,如下圖
程式開發完成,進入測試
AOP測試
添加測試類,代碼如下:
運作,結果如下:
測試類另外一種寫法,如下圖所示
執行效果同第一種測試方法。特别注意pom檔案中Spring的包和Spring-text包版本一緻
否則報:“java.lang.NoSuchMethodError: org.springframework.util.Assert.notNull”
結論
注解的方式是目前主流的使用方式。在示例的編寫中maven的使用,幫助我們下載下傳所依賴的jar包,提供了很大的便利