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...