一般默认Spring的配置文件叫applicationContext.xml。放在类路径下,即src下。当然也可以起名叫其他的,比如haha.xml。
在Students的基础上:
类路径下的配置文件:applicationContext.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-4.0.xsd"> <bean id="mydevice" class="com.entity.MoveDisk"> </bean> <!-- bean配置无论是name还是id,都不允许重名 --> <!-- 同一个bean的name可以起多个别名,但id不行 --> <bean name="stu,s1,s2" class="com.entity.Students"> <property name="sid" value="s001"/> <property name="name" value="茜茜"/> </bean> <bean name="stu2" class="com.entity.Students"> <property name="sid" value="s002"/> <property name="name" value="梦茜"/> </bean> </beans>
磁盘上的配置文件:
<?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.0.xsd"> <bean id="mydevice" class="com.entity.MoveDisk"> </bean> <!-- bean配置无论是name还是id,都不允许重名 --> <!-- 同一个bean的name可以起多个别名,但id不行 --> <bean name="stu3" class="com.entity.Students"> <property name="sid" value="s003"/> <property name="name" value="女神"/> </bean> </beans>
测试:—四种不同的getBean方法
package com.entity; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.AbstractXmlApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class StudentsTest { @Test public void fun1(){ //获得上下文对象----类路径下 //获取磁盘上的文件 //ApplicationContext ctx=new FileSystemXmlApplicationContext("F:\haha\test.xml"); ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml"); //1.getBean(String id|name);要求id和name都不能重复。 //Students s = (Students) ctx.getBean("stu2"); //2.getBean(Class clazz);通过类型来加载bean,要求类型必须是唯一的*** //Students s=ctx.getBean(Students.class);//注意:这里无需类型转换。 //3.getBean(String id|name,Class clazz); Students s=ctx.getBean("stu2", Students.class); //4.getBean(String id|name, Object ...) ==>getBean(String id|name, Object[] ) //调用指定id的指定的构造方法来获得对象。 System.out.println(s); ((AbstractXmlApplicationContext)ctx).close();//类似流,用完关闭。 } }