详解SpringBean基于XML的装配

论坛 期权论坛 脚本     
niminba   2021-5-23 02:38   2335   0

1.设值注入:通过反射调用setXxx注入属性值

package com.itheima.assemble;
import java.util.List;
public class User {
 private String username;
 private Integer password;
 private List<String> list;
 /**
  * 设值注入 
  * 提供默认空参构造方法 ;
  * 为所有属性提供setter方法。
  */
 public User() {
  super();
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public void setPassword(Integer password) {
  this.password = password;
 }
 public void setList(List<String> list) {
  this.list = list;
 }
 @Override
 public String toString() {
  return "User [username=" + username + ", password=" + password +
    ", list=" + list + "]";
 }

}
package com.itheima.assemble;
import org.springframework.context.ApplicationContext;
import 
 org.springframework.context.support.ClassPathXmlApplicationContext;
public class XmlBeanAssembleTest {
 public static void main(String[] args) {
  String xmlPath = "com/itheima/assemble/beans5.xml";
  ApplicationContext applicationContext = 
      new ClassPathXmlApplicationContext(xmlPath);
  // 构造方式输出结果
  System.out.println(applicationContext.getBean("user2"));
 }
}
<?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-4.3.xsd">
  
 <!--2.使用设值注入方式装配User实例 -->
 <bean id="user2" class="com.itheima.assemble.User">
  <property name="username" value="张三"></property>
  <property name="password" value="654321"></property>
  <!-- 注入list集合 -->
  <property name="list">
   <list>
    <value>"值1"</value>
    <value>"值2"</value>
   </list>
  </property>
 </bean>
</beans>

在这里插入图片描述

2.构造注入:用+其value属性注入属性值

package com.itheima.assemble;
import java.util.List;
public class User {
 private String username;
 private Integer password;
 private List<String> list;
 /**
  * 用构造注入 
  * 创建带所有参数的有参构造方法。
  */
 public User(String username, Integer password, List<String> list) {
  super();
  this.username = username;
  this.password = password;
  this.list = list;
 }

 @Override
 public String toString() {
  return "User [username=" + username + ", password=" + password +
    ", list=" + list + "]";
 }
}
package com.itheima.assemble;
import org.springframework.context.ApplicationContext;
import 
 org.springframework.context.support.ClassPathXmlApplicationContext;
public class XmlBeanAssembleTest {
 public static void main(String[] args) {
  String xmlPath = "com/itheima/assemble/beans5.xml";
  ApplicationContext applicationContext = 
      new ClassPathXmlApplicationContext(xmlPath);
  // 构造方式输出结果
  System.out.println(applicationContext.getBean("user1"));
 }
}
<?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-4.3.xsd">
  
 <!--1.使用构造注入方式装配User实例user1,装配后user1则内含多个注入数据的属性 -->
 <bean id="user1" class="com.itheima.assemble.User">
  <constructor-arg index="0" value="tom" /><!-- 属性1,即username -->
  <constructor-arg index="1" value="123456" /> <!-- 属性2,即password -->
  <constructor-arg index="2">  <!-- 属性3 -->
   <list>
    <value>"值1"</value>
    <value>"值2"</value>
   </list>
  </constructor-arg>
 </bean>
</beans>

在这里插入图片描述

到此这篇关于详解SpringBean基于XML的装配的文章就介绍到这了,更多相关SpringBean装配内容请搜索社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持社区!

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP