您的位置:首页 > 编程语言 > Java开发

详解Spring基于xml的两种依赖注入方式

2020-05-02 07:04 1406 查看

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 依赖注入