spring配置詳解 屬性注入 set方式

2021-09-24 22:31:19 字數 3999 閱讀 4128

spring當中屬性注入,關鍵的部分了,spring中的屬性注入,這個屬性注入其實也算配置,spring中的屬性注入,

那spring的屬性注入呢,一共有三種方式,我今天感覺方式有點多,spring注入方式,剛才我說了有三種,好像四個,

分別是set方法注入,建構函式注入,p命名空間注入,和spel注入,spring expression language,其中後兩種是

綠色,前兩種是紅色,需要掌握的,那接下來四種方式,就挨個看吧,第乙個重點到發紫了,紅的發紫,set注入是這

四種注入方式的帶頭大哥,最重要的乙個,其他方式其實忘了都無所謂的,最主要是set方法注入,當然最簡單的也是

set方法注入,看一下,咱們要測試注入呢,咱們再新建乙個包,新建乙個package,c_injection,注入,複製乙個配置

檔案過來,就留user就可以了,然後接下來寫乙個,set方式注入,咱們先學習一下set注入基本型別的值,或者叫注入

值型別,那咱們user有沒有值型別的屬性,顯然是有,咱們換句話講,全是值型別的屬性,乙個是什麼,乙個string型別,

還有乙個是什麼,integer,都是值型別的,來乙個property元素,然後name屬性填寫,填寫name,表示你要給user物件的

name屬性注入值,明白啥意思了,接下來,注入什麼值呢,使用value來表示,比如這裡寫tom,這樣就表示我要給name屬性

注入tom值,為user物件中名為name的屬性注入tom作為值,依次類推,下面age屬性怎麼注入會了吧,這裡是不是寫age,

然後value這裡面,tom 18歲,這我就不寫注釋了

<?xml version="1.0" encoding="utf-8"?>			

接下來咱們測試一下,重寫一下構造方法,讓咱們的屬性能夠列印出來
package com.learn.bean;

/** * @author leon.sun

*/public class user

private string name;

private integer age;

public string getname()

public void setname(string name)

public integer getage()

public void setage(integer age)

public void init()

public void destory()

@override

public string tostring()

}

demo放在injection裡面,然後把咱們的配置檔案路徑複製一下,粘到這個位置,去掉src之前的部分,接下來

我們還需要獲得user物件,列印就可以了,看看列印結果是不是tom 18,沒有懸念

package com.learn.c_injection;

import org.junit.test;

import com.learn.bean.user;

public class demo

}

user空參構造方法

user [name=tom, age=18]

是不是 tom 18歲,這就是值型別的set方法注入,接下來要玩乙個物件型別的注入,注入方式分幾種,

注入型別分幾種,接下來看物件型別的注入,你這個user得有物件型別的屬性,接下來咱們來建立乙個

物件,人嗎得有車,來乙個car,然後給這個car再來乙個private string name,再來乙個private string color,

就是這個顏色,然後生成get/set方法,這樣的話車物件就建立好了

package com.learn.bean;

public class car

public void setname(string name)

public string getcolor()

public void setcolor(string color)

@override

public string tostring()

}

接下來讓人擁有車,來乙個private car car,生成get/set方法
package com.learn.bean;

/** * @author leon.sun

*/public class user

private string name;

private integer age;

private car car;

public string getname()

public void setname(string name)

public integer getage()

public void setage(integer age)

public void init()

public void destory()

public car getcar()

public void setcar(car car)

@override

public string tostring()

}

然後接下裡回到配置檔案當中,現在要給car屬性注入了,怎麼辦呢,你要注入之前呢,你先得把car物件配置到

容器當中來,才能注入,所以第一步首先,將car物件配置到容器中,來乙個bean,然後name,class,你們提示不了,

你們提示不了的,今天老老實實複製完整類名,自己手動複製,明天再告訴你怎麼去設,今天能夠提示的是配bean

元素,提示name屬性,property元素,完整類名是誰都提示不了的,注意,我這兒能提示,是為啥呢,接下來的話,

屬性給他注入一下,有顏色和名字,那咱們來乙個什麼車啊,蘭博基尼,color咱們來乙個黃色的,接下來來乙個property

元素,等於car,看好,關鍵來了,car這個屬性是物件型別的,user物件中的car是物件型別的,是不是把下面的這兩車給他,

ref這個屬性,就是指定哪乙個物件要注入進去的,你把這個car粘到這裡來,ref全寫其實就是reference,翻譯過來就是引用,

為car屬性注入下方配置的car物件

<?xml version="1.0" encoding="utf-8"?>			

接下來咱們這樣,測試一下,但是為了看到效果,咱們把car的tostring寫出來,再把user的tostring刪掉,

重新生成乙個

package com.learn.bean;

public class car

public void setname(string name)

public string getcolor()

public void setcolor(string color)

@override

public string tostring()

}

再到demo裡面執行一下,看一下,這個user,這個tom,18歲就開著黃色的蘭博基尼
package com.learn.c_injection;

import org.junit.test;

import com.learn.bean.user;

public class demo

}

值型別用value,引用型別用ref,這就是set方法注入,這個是引用型別注入,值型別注入,set方式注入

Spring配置之屬性注入1

常用的屬性注入方式有四種 1 構造方法方式屬性注入 常用為注入普通型別的屬性注入,物件型別的屬性注入與set方法注入物件型別的屬性相似 car class com.itheima.spring.demo4.car 2 set方法方式屬性注入 set方法注入普通型別的屬性 set方法注入物件型別的屬性...

Spring物件屬性注入

注入 物件屬性賦值 一 基礎資料的set注入 1 實體類user public class user 對user類新增setter getter 2 配置檔案,比如叫beans.xml 25 tom 123456 3 測試類usertest public class usertest 二 基礎資料型...

Spring的自動注入 屬性配置檔案

spring的自動注入 在spring的配置檔案中由手動宣告注入方式變為spring容器自動完成注入,我們只需要宣告bean標籤即可。spring自動注入的型別 屬性名方式注入 byname 屬性型別方式注入 bytype 構造器形參型別注入 constructor 使用全域性宣告方式完成注入 de...