JavaEE Bean的装配方式——基于XML的装配

Bean的装配可以理解为依赖关系注入,Bean的装配方式有三种。如:基于XML的装配,基于注解的装配和自动装配(其中最常用的是基于注解的装配),今天就来练习基于XML的装配

而Spring提供了两种基于XML的装配方式:设值注入和构造注入

使用设值注入时在Spring配置文件中,需要使用<bean>元素的子元素<property>来为每个属性注入值,

而使用构造注入时,在配置文件中,需要使用<bean>元素的子元素<constructor-arg>来定义构造方法的参数,可以使用其value属性来设置该参数的值。下面通过一个案例来学习基于XML方式的Bean装配

1、在项目chapter02的src目录下,创建一个com.itheima.assemble包,在该包中创建User类,并在类中定义username、password和list集合三个属性及其对应的setter方法,如下面代码所示:

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.password=password;
		this.username=username;
		this.list=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 +",passeord=" +password +",list=" +list +"]";
	}
}

2、在com.itheima.assemble包中,创建配置文件beans5.xml,在配置文件中通过构造注入和设值注入的方式来装配User类的实例,代码如下:

<?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">
        
        <!-- 使用构造注入方式装配User实例 -->
        <bean id="user1" class="com.itheima.assemble.User">
            <constructor-arg index="0" value="tom" />
            <constructor-arg index="1" value="123456" />
            <constructor-arg index="2">
                <list>
                    <value>"constructorvalue1"</value>
                    <value>"constructorvalue2"</value>
                </list>
            </constructor-arg>
        </bean>
        
        <!-- 使用设置注入方式装配User实例 -->
        <bean id="user2" class="com.itheima.assemble.User">
           <property name="username" value="张三"></property>
           <property name="passeord" value="654321"></property>
           <property name="list">
               <list>
                   <value>"setlistvalue1"</value>
                   <value>"setlistvalue2"</value>
               </list>
           </property>
        </bean>
        
</beans>

3、在com.itheima.assemble包中,创建测试类XmlBeanAssembleTest,在类中分别获取并输出配置文件中的user1和user2实例,如下面代码所示:

package com.itheima.assemble;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class XmlBeanAssmebleTest {

	private static ApplicationContext beanlizi;

	public static void main(String[] args) {
		String xmlPath = "com/itheima/assemble/beans5.xml";
		beanlizi = new ClassPathXmlApplicationContext(xmlPath);
		
		System.out.println(beanlizi.getBean("user1"));
		System.out.println(beanlizi.getBean("user2"));
		
	}

}

4、执行程序,控制台输出为下图所示:

从上图中我们可以看到已经成功的使用基于XML装配的构造注入和设置注入两种方式装配了User实例

 

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值