首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

几种加载Spring的配置文件的模式

2012-11-11 
几种加载Spring的配置文件的方式package com.liu.testpublic class BeanFile { private String bea

几种加载Spring的配置文件的方式

package com.liu.test;public class BeanFile { private String beanFile = "多种方式加载Bean的配置文件"; public void setBeanFile(String beanFile) { this.beanFile = beanFile; } public String getBeanFile() { return beanFile; }}package com.liu.test;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStream;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.support.BeanDefinitionRegistry;import org.springframework.beans.factory.support.DefaultListableBeanFactory;import org.springframework.beans.factory.support.PropertiesBeanDefinitionReader;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.FileSystemResource;import org.springframework.core.io.InputStreamResource;import org.springframework.core.io.Resource;public class MainBeanFile { public static void main(String[] args) { // 直接调用HelloBean BeanFile bf = new BeanFile(); System.out.println(bf.getBeanFile()); /** * 利用XmlBeanFactory(Resource resource) 这里Resource必须是xml格式 * Resource包括:AbstractResource, ClassPathResource, FileSystemResource, * InputStreamResource, ServletContextResource, UrlResource */ /* * 利用 InputStreamResource(InputStream inputStream) 要将bean.xml放在项目根目录下,目录一定要写完整 */ InputStream is = null; try { is = new FileInputStream("c:/workspace/spring/WebRoot/WEB-INF/InputStreamResource.xml"); } catch (FileNotFoundException e) { e.printStackTrace(); } Resource resource = new InputStreamResource(is); sayHello(resource); /* * 利用 ClassPathResource(String path) 要将bean.xml放在源文件夹(src)目录下 */ resource = new ClassPathResource("ClassPathResource.xml"); sayHello(resource); /* * 利用 FileSystemResource(String path) 要将bean.xml放在项目根目录下,目录一定要写完整 * c:/workspace/spring/src/com/liu/test/FileSystemResource.xml */ resource = new FileSystemResource("c:/workspace/spring/src/com/liu/test/FileSystemResource.xml"); sayHello(resource); /* * 利用 Properties 要将bean.properties放在类路径--源文件夹(src)目录下 */ BeanDefinitionRegistry reg = new DefaultListableBeanFactory(); PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(reg); reader.loadBeanDefinitions(new ClassPathResource("bean.properties")); BeanFactory factory = (BeanFactory) reg; bf = (BeanFile) factory.getBean("beanFile"); System.out.println("利用" + bf.getBeanFile() + " 加载 Bean.properties");  /* * 利用 ApplicationContext 要将bean.xml放在类路径--源文件夹(src)目录下 */ ApplicationContext appContext = new ClassPathXmlApplicationContext( "/ApplicationContext.xml"); bf = (BeanFile) appContext.getBean("beanFile"); System.out.println("利用" + bf.getBeanFile() + " 加载 Bean.xml"); } public static void sayHello(Resource resource) { BeanFactory factory = new XmlBeanFactory(resource); BeanFile bf = (BeanFile) factory.getBean("beanFile"); System.out.println("利用 " + bf.getBeanFile() + " 加载 Bean.xml"); }} InputStreamResource.xml<?xml version="1.0" encoding="GBK"?><!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>    <bean id="beanFile" encoding="GBK"?><!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <bean id="beanFile" encoding="GBK"?><!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <bean id="beanFile" encoding="GBK"?><!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <bean id="beanFile" class="com.liu.test.BeanFile">  <property name="beanFile">   <value>ApplicationContext</value>  </property> </bean></beans>bean.properties(Spring也可以使用属性文件来定义配置文件,bean.properties放在源文件夹(src)目录下)beanFile.class=com.liu.test.BeanFilebeanFile.beanFile=properties输出结果:(也跟log4j的配置文件有关)多种方式加载Bean的配置文件利用 InputStreamResource(InputStream inputStream) 加载 Bean.xml利用 ClassPathResource(String path) 加载 Bean.xml利用 FileSystemResource(String path) 加载 Bean.xml 利用properties 加载 Bean.properties利用ApplicationContext 加载 Bean.xml

?

热点排行