詳解Spring基于xml的兩種依賴注入方式
更新時間:2019年12月30日 09:19:32 作者:ZackGo
這篇文章主要介紹了詳解Spring基于xml的兩種依賴注入方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
1)使用構(gòu)造器注入bean
實體類:用戶類
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 + '}';
}
}
實體類:用戶信息類
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
實體類:用戶類
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 + '}';
}
}
實體類:用戶信息類
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)文章
JSON反序列化Long變Integer或Double的問題及解決
這篇文章主要介紹了JSON反序列化Long變Integer或Double的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Idea2023創(chuàng)建springboot不能選擇java8的解決方法(最新推薦)
在idea2023版本創(chuàng)建springboot的過程中,選擇java版本時發(fā)現(xiàn)沒有java8版本,只有java17和java20,遇到這樣的問題如何解決呢,下面小編給大家分享Idea2023創(chuàng)建springboot不能選擇java8的解決方法,感興趣的朋友一起看看吧2024-01-01
java線程Thread.sleep()對比對象的wait示例解析
這篇文章主要為大家介紹了java線程Thread.sleep()對比對象的wait示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09

