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;
}
@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;
}
@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;
}
@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;
}
@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'}}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。