Spring Bean常用依賴注入方式詳解
一般而言,Spring的依賴注入有三種:構(gòu)造器注入、setter注入以及接口注入。本文主要講構(gòu)造器注入與setter注入。
1、構(gòu)造器注入
為了讓Spring完成構(gòu)造器注入,我們需要去描述具體的類、構(gòu)造方法并設(shè)置構(gòu)造方法的對應(yīng)參數(shù)。
代碼如下:
public class Role { private Long id; private String roleName; private String note; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getRoleName() { return roleName; } public void setRoleName(String roleName) { this.roleName = roleName; } public String getNote() { return note; } public void setNote(String note) { this.note = note; } public Role(String roleName, String note) { this.roleName = roleName; this.note = note; } public Role() { } public void run() { System.out.println("roleName:" + roleName + ";" + "note:" + note); } }
這個時候是沒有辦法利用無參的構(gòu)造方法去創(chuàng)建對象的,為了使Spring能正確創(chuàng)建這個對象,需要在xml文件中加入如下bean:
<bean id="role1" class="com.ssm.chapter.pojo.Role"> <constructor-arg index="0" value="總經(jīng)理" /> <constructor-arg index="1" value="公司管理者" /> </bean>
其中,constructor-arg元素用于定義類構(gòu)造方法的參數(shù),index用于定義參數(shù)的位置,而value是設(shè)置值,通過這樣定義spring便知道使用Role(String, String)這樣的構(gòu)造方法去創(chuàng)建對象了。
2、使用setter注入
setter注入是Spring最主流的注入方式,它消除了使用構(gòu)造器注入多個參數(shù)的可能性,可以把構(gòu)造參數(shù)聲明為無參的,然后使用setter注入為其設(shè)置對應(yīng)的值。需要注意的是,如果類中沒有構(gòu)造函數(shù),JVM會默認創(chuàng)建一個無參構(gòu)造函數(shù)。xml代碼清單如下:
<bean id="role2" class="com.ssm.chapter.pojo.Role" > <property name="roleName" value="高級工程師" /> <property name="note" value="重要人員" /> </bean>
接著編寫測試類即可:
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-cfg.xml");
Role role = (Role) ctx.getBean("role2");
role.run();
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java 直接調(diào)用python腳本,并傳遞參數(shù)代碼實例
這篇文章主要介紹了java調(diào)用python腳本傳遞參數(shù)的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04JVM默認時區(qū)為:Asia/Shanghai與java程序中GMT+08不一致異常
這篇文章主要介紹了JVM默認時區(qū)為:Asia/Shanghai與java程序中GMT+08不一致異常問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10Spring?Boot配置文件的語法規(guī)則詳解(properties和yml)
這篇文章主要介紹了Spring?Boot配置文件的語法規(guī)則,主要介紹兩種配置文件的語法和格式,properties和yml,對于配置文件也有獨立的文件夾存放,主要用來存放一些需要經(jīng)過變動的數(shù)據(jù)(變量值),感興趣的朋友跟隨小編一起看看吧2024-07-07IDEA將Maven項目中指定文件夾下的xml等文件編譯進classes的方法
這篇文章主要介紹了IDEA將Maven項目中指定文件夾下的xml等文件編譯進classes的方法,幫助大家更好的利用IDEA進行Java的開發(fā)學(xué)習(xí),感興趣的朋友可以了解下2021-01-01Java使用ffmpeg和mencoder實現(xiàn)視頻轉(zhuǎn)碼
這篇文章主要為大家詳細介紹了Java使用ffmpeg和mencoder實現(xiàn)視頻轉(zhuǎn)碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12springboot掃描自定義的servlet和filter代碼詳解
本文是一篇根據(jù)作者工作經(jīng)歷總結(jié)出來的關(guān)于springboot掃描自定義的servlet和filter代碼詳解的文章,小編覺得非常不錯,這里給大家分享下,和朋友們一起學(xué)習(xí),進步。2017-10-10