详解Spring基于xml的两种依赖注入方式
1)使用构造器注入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);
}
}
测试结果
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);
}
}
测试结果
User{name='tom', userMessage=UserMessage{username='scott', password='tiger'}}
以上是 详解Spring基于xml的两种依赖注入方式 的全部内容, 来源链接: utcz.com/z/347889.html