一 點睛
控制反轉和依賴注入在spring環境下是等同的概念,控制反轉是通過依賴注入實現的。所謂依賴注入指的是容器負責建立物件和維護物件間的依賴關係,而不是通過物件本身負責自己的建立和解決自己的依賴。
依賴注入的主要目的是為了解耦,體現一種組合的概念。如果你希望你的類具備某項功能的時候,是繼承自乙個具有次功能的父類好呢?還是組合另外乙個具有此功能的類好呢?答案是不言而喻的,繼承乙個父類,子類和父類耦合了,組合另外乙個類則使耦合度大大降低了。
spring ioc 容器(applicationcontext)負責建立bean,並通過容器將功能bean注入到你需要的bean中。
spring提供使用xml、註解、j**a配置、groovy配置實現bean的建立和注入。
無論是xml配置、註解還是j**a配置,都被稱為配置元資料,所謂元資料即描述資料的資料。元資料本身不具備任何可執行的能力,只有通過外界**來對這些元資料進行解析後進行一些有意義的操作。spring容器解析這些元資料進行bean初始化,配置和管理依賴。
二 宣告bean的注程式設計客棧解
三 注入bean的註解
四 實戰
1 編寫功能類的bean
package com.wisely.highlight_spring4.ch1.di;
import org.springframework.stereotype.service;
//使用@service註解宣告當前functionservice類是spring管理的乙個bean。
//使用@component、@service、@respository、@controller是等效的,可
//根據需要選擇
@servic程式設計客棧e
public class functionservice
}2 使用功能類bean
package com.wisely.highlight_spring4.ch1.di;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.service;
@service //使用@service註解宣告當前usefunctionservice類是spring管理的乙個bean
public class usefunctionservice
}3 配置類
package com.wisely.highlight_spring4.ch1.di;
import org.springframework.context.annotation.componentscan;
import org.springframework.context.annotation.configuration;
@configuration //@configuration宣告當前類是乙個配置類。
//使用@componentscan,自動掃瞄包下所有@component、@service、@respository、@controller
//的類,並註冊為bean
@componentscan("com.wisely.highlight_spring4.ch1.di")
public class diconfig
4 執行類
package com.wisely.highlight_spring4.ch1.di;
import org.springframework.context.annotation.annotationconfigapplicationcontext;
public class main
}五 測試
hello world !
spring 依賴注入 Spring依賴注入
依賴注入 dependency injection,簡稱di 與控制反轉 ioc 的含義相同控制反 在使用spring框架之後,物件的例項不再由呼叫者來建立,而是由spring容器來建立,spring容器會負責控制程式之間的關係,而不是由呼叫者的程式 直接控制,這樣控制權由應用程式轉移到了sprin...
Spring 與依賴注入
依賴注入是反轉控制的一種。什麼是反轉控制?我們平常寫程式,需要什麼物件,就在 裡顯式地new乙個出來然後使用,這是我們自己去控制物件的生成。而反轉控制是讓spring 或者類似的其他工具 幫忙去生成我們需要的物件,也就是說物件的生成的控制權交給spring了。當然,spring需要依據一定的規則去生...
PHP依賴注入原理與用法分析
依然是來自到喜啦的一道面試題,你知道什麼是依賴注入嗎?依賴注入 di 的概念雖然聽起來很深奧,但是如果你用過一些新興的php框架的話,對於di一定不陌生,因為它們多多少少都用到了依賴注入來處理類與類之間的依賴關係。其實要理解di,首先要明白在php中如何傳遞依賴關係。第一種方案,也是最不可取的方案,...