詳解Spring基于xml的兩種依賴注入方式
1)使用構(gòu)造器注入bean
實(shí)體類:用戶類
public class User { private String name; private UserMessage userMessage; public User() { } public User(String name, UserMessage userMessage) { this.name = name; this.userMessage = userMessage; } public String getName() { return name; } public void setName(String name) { this.name = name; } public UserMessage getUserMessage() { return userMessage; } public void setUserMessage(UserMessage userMessage) { this.userMessage = userMessage; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", userMessage=" + userMessage + '}'; } }
實(shí)體類:用戶信息類
public class UserMessage { private String username; private String password; public UserMessage() { } public UserMessage(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "UserMessage{" + "username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 注冊UserMessage類 --> <bean id="userMessage" class="entity.UserMessage"> <constructor-arg name="username" value="scott"></constructor-arg> <constructor-arg name="password" value="tiger"></constructor-arg> </bean> <!-- 注冊User類 --> <bean id="user" class="entity.User"> <constructor-arg name="name" value="tom"></constructor-arg> <constructor-arg name="userMessage" ref="userMessage"></constructor-arg> </bean> </beans>
測試類
public class TestDI { @Test public void test() { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = ac.getBean("user", User.class); System.out.println(user); } }
測試結(jié)果
User{name='tom', userMessage=UserMessage{username='scott', password='tiger'}}
2)使用setter方法注入bean
實(shí)體類:用戶類
public class User { private String name; private UserMessage userMessage; public User() { } public User(String name, UserMessage userMessage) { this.name = name; this.userMessage = userMessage; } public String getName() { return name; } public void setName(String name) { this.name = name; } public UserMessage getUserMessage() { return userMessage; } public void setUserMessage(UserMessage userMessage) { this.userMessage = userMessage; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", userMessage=" + userMessage + '}'; } }
實(shí)體類:用戶信息類
public class UserMessage { private String username; private String password; public UserMessage() { } public UserMessage(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "UserMessage{" + "username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 注冊UserMessage類 --> <bean id="userMessage" class="entity.UserMessage"> <property name="username" value="scott"></property> <property name="password" value="tiger"></property> </bean> <!-- 注冊User類 --> <bean id="user" class="entity.User"> <property name="name" value="tom"></property> <property name="userMessage" ref="userMessage"></property> </bean> </beans>
測試類
public class TestDI { @Test public void test() { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = ac.getBean("user", User.class); System.out.println(user); } }
測試結(jié)果
User{name='tom', userMessage=UserMessage{username='scott', password='tiger'}}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Sping?Security前后端分離兩種實(shí)戰(zhàn)方案
這篇文章主要介紹了Sping?Security前后端分離兩種方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03Kotlin基礎(chǔ)教程之伴生對象,getter,setter,內(nèi)部,局部,匿名類,可變參數(shù)
這篇文章主要介紹了Kotlin基礎(chǔ)教程之伴生對象,getter,setter,內(nèi)部,局部,匿名類,可變參數(shù)的相關(guān)資料,需要的朋友可以參考下2017-05-05詳解Java語言中一個(gè)字符占幾個(gè)字節(jié)?
這篇文章主要介紹了Java語言中一個(gè)字符占幾個(gè)字節(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04ssm項(xiàng)目實(shí)現(xiàn)用戶登陸持久化(token)
這篇文章主要介紹了ssm項(xiàng)目實(shí)現(xiàn)用戶登陸持久化(token),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Spring 整合 MyBatis的實(shí)現(xiàn)步驟
SpringMVC 本來就是 Spring 框架的一部分,這兩者無須再做整合,所以 SSM 整合的關(guān)鍵就是Spring對MyBatis的整合,三大框架整合完成后,將以 Spring 為核心,調(diào)用有關(guān)資源,高效運(yùn)作,這篇文章主要介紹了 Spring 整合 MyBatis的實(shí)現(xiàn)步驟,需要的朋友可以參考下2023-02-02如何基于springboot-admin實(shí)現(xiàn)后臺監(jiān)控
這篇文章主要介紹了如何基于springboot-admin實(shí)現(xiàn)后臺監(jiān)控,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Java?Web開發(fā)常用框架Spring?MVC?Struts示例解析
這篇文章主要為大家介紹了Java?Web開發(fā)常用框架Spring?MVC?Struts示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06