Spring使用Set方法注入属性

按照老方法

创建maven项目,添加依赖,并写入Junit和spring核心的依赖

接着添加Spring的配置文件

项目架构

在base包建立一个User类,创建两个属性,并构建它们的Set方法

package base;

public class User {
	public String name;
	public String from;
    public void setName(String name) {
		this.name = name;
	}
	public void setFrom(String from) {
		this.from = from;
	}
	
}

 

在Spring.xml文件中 写入Bean节点 添加<property>子节点,为属性赋值。

其中name是User中set方法右侧的名称,value为具体的值,如果value的值是对象类型,先配置对象的Bean节点,再通过REF引用节点的ID


	<bean id="user"
		class="base.User">
		<property name="name" value="Mike" />
		<property name="from" value="Beijing" />
	</bean>

在src/test/java下创建test包用来存放测试类,并创建一个TestCase类

添加以下代码

一个有三个注解,首先是@Test,它是用来标注Junit的测试方法,相当于Main方法。

@Before:所有拦截方法执行之前执行一段逻辑,标注初始化方法   

@After:  所有拦截方法执行之后执行一段逻辑,一般用于释放资源

这里将ApplicationContext的变量设为全局变量,是为了以后进行测试的时候避免重复实现该接口

在使用完资源后,我们都得关闭资源,这是为了避免某个资源没有处于使用状态依旧保持连接,JVM就不会通知Gc回收器来回收该对象导致的内存溢出的风险。

package test;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import base.User;
import extra.Person;
import extra.SampleBean;

public class TestCase {
	private AbstractApplicationContext ac;

	@Test
	public void information() {
		User u1 = ac.getBean("user", User.class);
		System.out.println(u1.from);
		System.out.println(u1.name);
	}

	@Before
	public void doBefore() {

		ac = new ClassPathXmlApplicationContext("spring.xml");

	}

	@After
	public void doAfter() {

		ac.close();
	}
}

 

于此,就可以得到测试结果

 

同样,我们还可以用Set方法为数组和集合赋值

方法与上面步骤类同,不过需要注意的是,在配置XML文件的Bean属性的<property>节点需要用对应类型的节点添加<value>

比如LIst集合和数组是

<property name="xxx">
			<list>
				<value>xx</value>
				<value>xx</value>
				<value>xx</value>
				<value>xx</value>
			</list>
</property>

Set集合是

<property name="xx">
			<set>
				<value>xx</value>
				<value>xx</value>
				<value>xx</value>
			</set>
</property>

Map集合是

<property name="xxx">
			<map>
				<entry key="xx" value="xx" />
				<entry key="xx" value="xx" />
				<entry key="xx" value="xx" />
			</map>
</property>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值