Spring IOC(DI)

 

我的理解:簡單來講,依賴注入 類比 hibernate的二級緩存。  把東西(hibernate-數據【hashmap】,DI-類)集中放進一個容器(內存)中 ,方便其餘(hibernate—QL語句、DI—類使用。spring

這樣hibernate取數據時先從二級緩存找,減小訪問數據庫,提升效率。某個類依賴注入後,就不用經過new個對象(保存內存堆中)來使用它,直接經過註解從容器中獲取,方便管理(使用)對象

自動掃描

  <context:component-scan base-package="com.ssm"/> (多個包用逗號隔開)
  代表com.ssm包及其子包中,若是某個類的頭上帶有特定的註解
數據庫

  @Component,@Repository,@Service,@Controller,就會將這個對象做爲Bean注入進Spring容器。緩存

IOC-反轉控制(DI-依賴注入)自我理解

  spring配置文件中掃描註解把Bean注入IOC容器編碼

  須要哪一個對象從IOC容器取,而後賦值(注入)。(spring 經常使用注入方式:屬性注入)spa

  把初始化的數據放入配置文件中,經過註解匹配對應的bean賦值。hibernate

  IOC:(經過代理(中介)獲取對象或其屬性)不需經過程序代碼實例化對象。把對象當成bean注入IOC容器。須要什麼對象,經過註解從容器獲取。代理

  DI:初始化(賦值)。component

  依賴注入和控制反轉是對同一件事情的不一樣描述,從某個方面講,就是它們描述的角度不一樣。依賴注入是從應用程序的角度在描述,能夠把依賴注入描述完整點:應用程序依賴容器建立並注入它所須要的外部資源;而控制反轉是從容器的角度在描述,描述完整點:容器控制應用程序,由容器反向的嚮應用程序注入應用程序所須要的外部資源。對象

  IOC:內存

    實現反轉控制,實現代碼解耦。

    不須要編碼實例對象,而把對象直接放入到 IOC容器中。須要用到某些對象或其屬性直接從IOC容器經過注入的方式獲取。

    使用註解代替配置文件(預編譯報錯問題)來注入屬性,解耦,方便管理。

  DI:

    IOC容器相似於顏料盒(放置全部顏料的地方),當咱們須要畫一幅畫(實現某些功能),要先用調色板從顏料盒中取所需的顏料(類中注入對象或其屬性)。

 

我的理解:簡單說,依賴注入 類比 hibernate的二級緩存(把東西(hibernate-數據【hashmap】,DI-類)集中放進一個容器(內存)中),方便其餘(hibernate—QL語句、DI—類使用

這樣hibernate取數據時先從二級緩存找,減小訪問數據庫,提升效率。某個類依賴注入後,就不用經過new個對象(保存內存堆中)來使用它,直接經過註解從容器中獲取,方便管理(使用)對象

相關文章
相關標籤/搜索