欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2021-07-21 08:23:15|栏目:JAVA代码|点击:

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'}}

上一篇:如何通过XML方式配置AOP过程解析

栏    目:JAVA代码

下一篇:Java HashSet(散列集),HashMap(散列映射)的简单介绍

本文标题:详解Spring基于xml的两种依赖注入方式

本文地址:http://www.codeinn.net/misctech/159960.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有