Spring Bean常用依賴注入方式詳解
一般而言,Spring的依賴注入有三種:構(gòu)造器注入、setter注入以及接口注入。本文主要講構(gòu)造器注入與setter注入。
1、構(gòu)造器注入
為了讓Spring完成構(gòu)造器注入,我們需要去描述具體的類、構(gòu)造方法并設(shè)置構(gòu)造方法的對(duì)應(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è)時(shí)候是沒(méi)有辦法利用無(wú)參的構(gòu)造方法去創(chuàng)建對(duì)象的,為了使Spring能正確創(chuàng)建這個(gè)對(duì)象,需要在xml文件中加入如下bean:
<bean 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è)置值,通過(guò)這樣定義spring便知道使用Role(String, String)這樣的構(gòu)造方法去創(chuàng)建對(duì)象了。
2、使用setter注入
setter注入是Spring最主流的注入方式,它消除了使用構(gòu)造器注入多個(gè)參數(shù)的可能性,可以把構(gòu)造參數(shù)聲明為無(wú)參的,然后使用setter注入為其設(shè)置對(duì)應(yīng)的值。需要注意的是,如果類中沒(méi)有構(gòu)造函數(shù),JVM會(huì)默認(rèn)創(chuàng)建一個(gè)無(wú)參構(gòu)造函數(shù)。xml代碼清單如下:
<bean > <property name='roleName' value='高級(jí)工程師' /> <property name='note' value='重要人員' /> </bean>
接著編寫測(cè)試類即可:
ApplicationContext ctx = new ClassPathXmlApplicationContext('spring-cfg.xml');Role role = (Role) ctx.getBean('role2');role.run();
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 使用Python webdriver圖書館搶座自動(dòng)預(yù)約的正確方法2. Python字符串到字節(jié)的轉(zhuǎn)換。雙反斜杠問(wèn)題3. Python sublime安裝及配置過(guò)程詳解4. Linux刪除系統(tǒng)自帶版本Python過(guò)程詳解5. Python 合并拼接字符串的方法6. Python3 json模塊之編碼解碼方法講解7. python 使用事件對(duì)象asyncio.Event來(lái)同步協(xié)程的操作8. ASP.NET MVC使用jQuery ui的progressbar實(shí)現(xiàn)進(jìn)度條9. Java Long類型對(duì)比分析10. ASP基礎(chǔ)知識(shí)VBScript基本元素講解

網(wǎng)公網(wǎng)安備