Spring 加载Bean配置文件1. 创建项目
新建一个Java Project:SpringBeanFile,注意要导入用户库Spring. 这是完成后整个项目的结构(预览一下):项目源码下载(不包含库文件):http://free.ys168.com/?javamxj Spring目录下面。 2. 编写类文件 下面开始创建一个新类:BeanFile ;包名:javamxj.spring.beanfile BeanFile.java package javamxj.spring.beanfile; public class BeanFile { private String beanFile = "多种方式加载Bean的配置文件"; public void setBeanFile(String beanFile) { this.beanFile = beanFile; } public String getBeanFile() { return beanFile; } } 新建Test.java,测试一下。 package javamxj.spring.beanfile; 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 Test { 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("bean1.xml"); } catch (FileNotFoundException e) { e.printStackTrace(); } Resource resource = new InputStreamResource(is); sayHello(resource); /* * 利用 ClassPathResource(String path) * 要将bean.xml放在源文件夹(src)目录下 */ resource = new ClassPathResource("bean2.xml"); sayHello(resource); /* * 利用 FileSystemResource(String path) * 要将bean.xml放在项目根目录下 */ resource = new FileSystemResource("bean3.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( "bean4.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"); } }3. 配置文件 由上面的Test.java可知,这里一共需要四个XML文件和一个Properties文件,现在分别建立。 bean1.xml放在项目根目录下: bean1.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" class="javamxj.spring.beanfile.BeanFile"> <property name="beanFile"> <value>InputStreamResource(InputStream inputStream)value> property> bean> beans> bean2.xml、bean3.xml、bean4.xml与bean1.xml相似,仅仅需要替换一下值即可。重要的注意文件的存放位置。这里只给出不同的代码; ? bean2.xml放在源文件夹(src)目录下: bean2.xml(部分) <property name="beanFile"> <value>ClassPathResource(String path)value> property> ? bean3.xml放在项目根目录下:
|
|
||||
|
|
||||
|
|
|
||||
|
|
||||
|
|
|
||||
|
|
||||
|
|