Spring的注入方式Setter和構造器

2021-08-08 10:47:21 字數 2165 閱讀 7962

簡單介紹下spring:

首先深入理解下spring的兩大特徵(ioc和aop)

ioc(依賴式注入):

它並不是一種技術實現,而是一種設計思想.原來需要我們手動的建立物件,管理物件的生命週期和協調工作.

現在全部交給spring去幫我們建立,管理,協調物件.每個物件只需要關注其自身的業務邏輯關係就可以了.

在這樣看來,管理物件的角色發生了反轉(控制反轉)

舉例:某一天,你生病了,但是你不清楚自己到底得了什麼病,你只知道自己頭疼,咳嗽,全身無力。

這個時候你決定去藥店買藥,藥店有很多種藥,僅僅是**頭疼就有好幾十種,還有西藥中藥等區別。

然後你自己看了看說明書,選擇了一盒你自己覺得最能**自己病症的藥,付錢吃藥,期待可以早點好起來。 

但是這個過程,對於乙個病人來說,太辛苦了。頭疼,咳嗽,全身無力,還要乙個個的看藥品說明書,

乙個個的比較哪個藥比較好,簡直是太累了。這個時候,你決定直接去醫院看醫生。 

醫生給你做了檢查,知道你的病症是什麼,有什麼原因引起的;同時醫生非常了解有哪些藥能**你的病痛,

並且能根據你的自身情況進行篩選。只需要短短的十幾分鐘,你就能拿到對症下藥的藥品,即省時又省力。

aop(面向切面程式設計):

將那些影響了多個類的公共行為封裝到乙個可重用模組,並將其命名為"aspect",即切面。所謂"切面",

簡單說就是那些與業務無關,卻為業務模組所共同呼叫的邏輯或責任封裝起來,便於減少系統的重複**

下面介紹spring 2種最常用的注入方式:  setter和構造器注入其中"setter"最常用

1.setter注入

建立兩個實體類 person和student 如下:

我先簡單解釋下:

假如現在我要 注入person,類中有兩個屬性name和student 那麼使用setter注入

必須要有注入屬性的 set方法 get可以沒有 但是通常set get成對出現。

下邊是xml中的配置(重點的地方到了)

類中可以這樣注入person

person我們並沒建立,用@resource標籤注入person

其實@resource 有乙個預設屬性@

resource

(name="person")   name值預設為類的首字母小寫 比如:

person >>> person   name和.xml中要注入的bean id 一致id="person" class="com.sgai.qgpam.bd.entity.person">

下圖用的是預設值@

resource相當於@

對應關係如下圖:

2.下邊我們開始簡單介紹下構造器注入

一樣兩個測試類 person 和  student

student 和 setter 一樣

person有所變化如下圖:

簡單解釋下:

index是索引,指定注入的屬性,從0開始,如:0代表persondao,1代表str屬性

·type是指該屬性所對應的型別,如persondao對應的是com.aptech.dao.persondao

· ref 是指引用的依賴對;

·value 當注入的不是依賴物件,而是基本資料型別時,就用value

對應關係和setter基本一致 小伙幫們快去動手試試吧

Spring注入的方式

spring依賴注入分為兩種 建構函式注入和setter方法注入 1 建構函式注入的配置檔案如下 i am a learner.helloworld.properties 在上面的這個配置檔案中我們主要有3個類 com.openv.impl.userinfoimpl,com.openv.impl.h...

spring注入方式

一 二 三種注入方式 1.通過set方法賦值 賦值為物件2.通過構造器賦值 3.通過p標籤賦值 當屬性值的型別相同時,常需要type來區分 注意 必須提供無參構造給bean4.自動裝配 自動尋找beanid 類的屬性值 自動尋找其他bean的型別 class 是否與該類的ref屬性型別一致 是否與該...

spring 注入方式

第一種 構造器注入 第二種 set依賴注入 bean id address class com.kuang.pojo.address property name address value 西安 property bean bean id student class com.kuang.pojo.s...