Spring的XML装配方式

配置环境

  1. 项目右键点击Build path 然后点击Configure Build path 
  2. 点击Libraries ,addLibraries
  3. 点击MyEclipse Library  然后next
  4. 找到spring 选择一个版本

配置spring-config.xml

  1. 去spring-framework-4.3.9.RELEASE-dist\spring-framework-4.3.9.RELEASE\docs\spring-framework-reference\html路径下找到beans
  2. 复制上面的配置即可
  3. 创建xml的时候要在项目下创建一个名为cfg的Source Folder,把Spring-config.xml放在这个目录下,要不然会报错
<?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">
</beans>

 

POJO类省略

属性和无参构造方法,get,set方法

 

一.简单的xml装配(装配简易值)

spring.xml

<bean id="student" class="com.qyc.SpringDemo.StudentPojo">
	<property name="nameString" value="强月城"></property>
	<property name="idString" value="2017011418"></property>
</bean>

main.java  (注意:通过ClassPathXmlApplicationContext创建applicationContext对象,然后调用getBean方法装配POJO对象)

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml");
		School school = (School) applicationContext.getBean("school");
		System.out.println(school.toString());

二.装配集合(List  Set  Map)

spring.xml

<bean id="gather" class="com.qyc.SpringDemo.Gather">
	<property name="list">
		<list>
			<value>list1</value>
			<value>list2</value>
			<value>list3</value>
		</list>
	</property>

	<property name="set">
		<set>
			<value>set1</value>
			<value>set2</value>
			<value>set3</value>
		</set>
	</property>

	<property name="map">
		<map>
			<entry key="1" value="map1"></entry>
			<entry key="2" value="map2"></entry>
			<entry key="3" value="map3"></entry>
		</map>
	</property>
</bean>

main.java

Gather gather = (Gather) applicationContext.getBean("gather");
		List<String> list = gather.getList();
		System.out.println(list);
		
		Set<String> set = gather.getSet();
		System.out.println(set);
		
		Map<String, String> map = gather.getMap();
		Set<String> key = map.keySet();
		System.out.println(key);
		for(String k:key) {
			System.out.println(map.get(k));
		}

 

三.装配复杂的集合

<bean id="student" class="com.qyc.SpringDemo.StudentPojo">
	<property name="nameString" value="强月城"></property>
	<property name="idString" value="2017011418"></property>
</bean>
<bean id="school" class="com.qyc.SpringDemo.School">
	<property name="name" value="清华"></property>
	<property name="nj" value="大三"></property>
</bean>

<bean id="student1" class="com.qyc.SpringDemo.StudentPojo">
	<property name="nameString" value="qyc"></property>
	<property name="idString" value="2017011418"></property>
</bean>
<bean id="school1" class="com.qyc.SpringDemo.School">
	<property name="name" value="北大"></property>
	<property name="nj" value="大三"></property>
</bean>


<bean id="SchoolStudentPro" class="com.qyc.SpringDemo.SchoolStudentPro">
	<property name="list">
		<list>
			<ref bean="student"/>
			<ref bean="student1"/>
		</list>
	</property>
	<property name="map">
		<map>
			<entry key-ref="school" value-ref="student"></entry>
			<entry key-ref="school1" value-ref="student1"></entry>
		</map>
	</property>

</bean>
SchoolStudentPro schoolStudentPro = (SchoolStudentPro) applicationContext.getBean("SchoolStudentPro");
		List<StudentPojo> list = schoolStudentPro.getList();
		System.out.println(list);
		
		Map<School, StudentPojo> map = schoolStudentPro.getMap();
		System.out.println(map.values());
		Set<School> set = map.keySet();
		for(School school:set) {
			System.out.println(school);
			System.out.println(map.get(school));
		}

[StudentPojo [nameString=强月城, idString=2017011418], StudentPojo [nameString=qyc, idString=2017011418]]
[StudentPojo [nameString=强月城, idString=2017011418], StudentPojo [nameString=qyc, idString=2017011418]]
School [name=清华, nj=大三]
StudentPojo [nameString=强月城, idString=2017011418]
School [name=北大, nj=大三]
StudentPojo [nameString=qyc, idString=2017011418]

 

四.构造器注入

     <bean id="student" class="com.qyc.constructor.Students">
     	<constructor-arg index="0" value="强月城"></constructor-arg>
     	<constructor-arg name="id" value="2017011418"></constructor-arg>
     </bean>
package com.qyc.constructor;

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

public class TestDemo {
	public static void main(String[] args) {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Students students = (Students) applicationContext.getBean("student");
		System.out.println(students);
	}
}

DEBUG 11-22 15:13:37,504 Returning cached instance of singleton bean 'student'  (AbstractBeanFactory.java:251) 
Studentzd [name=强月城, id=2017011418]

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值