原來是這樣建立專案的
userdao 介面
userdaoimpl 實現類
userservice 業務介面
userserviceimpl 業務實現類
在我們原來的業務中,使用者的需求可能會影響我們原來的**,我們需要根據使用者的需求來修改原**。如果程式**量十分大,修改一次成本代價十分昂貴!
我們使用乙個set介面實現,已經發生了革命性的變化:
private userdao userdao;
//利用set實現動態實現值的注入
public void setuserdao(userdao userdao)
這種思想從本質上解決了問題,程式設計師不用再去管理物件的建立了,系統的耦合性大大降低!可以更加專注地在業務的實現上!這就是ioc的原型
控制反轉ioc(inversion of control),是一種設計思想,di(依賴注入)是實現ioc的一種方法,也有人認為di只是ioc的另一種說法。沒有ioc的程式中 , 我們使用物件導向程式設計 , 物件的建立與物件間的依賴關係完全硬編碼在程式中,物件的建立由程式自己控制,控制反轉後將物件的建立轉移給第三方,個人認為所謂控制反轉就是:獲得依賴物件的方式反轉了。
ioc是spring框架的核心內容,使用多種方式完美的實現了ioc,可以使用xml配置,也可以使用註解,新版本的spring也可以零配置實現ioc。
spring容器在初始化時先讀取配置檔案,根據配置檔案或元資料建立與組織物件存入容器中,程式使用時再從ioc容器中取出需要的物件。
採用xml方式配置bean的時候,bean的定義資訊是和實現分離的,而採用註解的方式可以把兩者合為一體,bean的定義資訊直接以註解的形式定義在實現類中,從而達到了零配置的目的。
控制反轉是一種通過描述(xml或註解)並通過第三方去生產或獲取特定物件的方式。在spring中實現控制反轉的是ioc容器,其實現方法是依賴注入(dependency injection,di)。
Spring框架學習之IOC 二
spring框架學習之ioc 二 接著昨天的內容,下面開始ioc基於註解裝配相關的內容 在 classpath 中掃瞄元件 特定元件包括 component 基本註解,標識了乙個受 spring 管理的元件 respository 標識持久層元件 service 標識服務層 業務層 元件 contr...
Spring學習篇 IoC知識整理 二
2.利用messagesource實現國際化 i18n spring目前提供了兩個messagesource的實現 resourcebundlemessagesource和staticmessagesource。它們都繼承nestingmessagesource以便能夠處理巢狀的訊息。staticm...
Spring學習篇 IoC知識整理 二
2.利用messagesource實現國際化 i18n spring目前提供了兩個messagesource的實現 resourcebundlemessagesource和staticmessagesource。它們都繼承nestingmessagesource以便能夠處理巢狀的訊息。staticm...