天天看點

spring入門(控制反轉與依賴注入)

首先要了解什麼是控制反轉,和依賴注入。

概念對比:

                                        控制反轉                       DI (dependency injection) 依賴注入

含義:

   把原理new對象的這種方式轉換成了,spring通過反射建立對象的方式。

spring建立完的對象放到一個容器中,誰需要就給誰注入進去.

簡單說:把建立對象和管理對象的權利交給spring

含義:就是給對象的屬性設定值.

原來給對象的屬性設定值: set方法給對象設定值 構造方法給對象初始化的時候設定值.

對象的建立 對象屬性值的設定

控制反轉:

1.建立對象的幾種方式?

 構造方法

 靜态工廠

 執行個體工廠

2.spring建立對象的範圍

     問題: 每次擷取對象的時候,spring是新建立一個對象還是始終給我們傳回同一個對象?

              單例: 記憶體中隻有一個對象,每次擷取到該對象的位址值一樣.

             多例:記憶體中的每個對象都是一個新的對象,他們的位址值都不同.

    答案: spring預設的情況下建立的對象都是單例的. (每次傳回的對象都是同一個)

3.spring建立對象的生命周期

spring建立的對象什麼時候建立,什麼時候運作,什麼時候銷毀.?

                  1. 建立, 加載配置檔案的時候

                  2. 運作,使用該對象的時候

                  3.銷毀 ,spring的容器關閉的時候

依賴注入:

1.注入依賴的幾種方式?

set方式設定屬性

構造方式注入

p名稱空間注入和c名稱空間注入

複雜資料類型注入

常用注解:

注解名 作用

@Component 

@Component("abc")

預設的id是類名首字母小寫

手動的指定了  <bean id="abc" class="xxxx">

@Controller 确定是表現層/控制層 使用Controller
@Service 業務邏輯使用 Service
@Repository dao持久層使用Repository
 @Autowired 自動注解
@Qualifier("id")   注入方式1:(根據的bean id值來指定)
@Value("#{son1}") 注入方式2:
 @Resource(name="son1") 注入方式3:jdk的注入