注册
 找回密码
 注册
江西广告网
查看: 331|回复: 0
打印 上一主题 下一主题

快速上手Spring

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-2-17 10:58:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
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"); } } [1] [2] [3] 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放在项目根目录下: bean3.xml(部分) <property name="beanFile"> <value>FileSystemResource(String path)value> property> ? bean4.xml放在源文件夹(src)目录下: bean4.xml(部分) <property name="beanFile"> <value>ApplicationContextvalue> property> Spring也可以使用属性文件来定义配置文件,如下: ? bean.properties放在源文件夹(src)目录下: bean.properties beanFile.class=javamxj.spring.beanfile.BeanFile beanFile.beanFile=properties 还需要将上文《快速上手Spring--2.HelloWorld(2)》中的log4j.properties复制到src目录下。 上一页 [1] [2] [3] 4. 运行程序 右击Test.java,运行程序,控制台输出如下: 多种方式加载Bean的配置文件 利用 InputStreamResource(InputStream inputStream) 加载 Bean.xml 利用 ClassPathResource(String path) 加载 Bean.xml 利用 FileSystemResource(String path) 加载 Bean.xml 利用 properties 加载 Bean.properties 利用 ApplicationContext 加载 Bean.xml 5. 小结 这篇文章主要谈论了如何加载Spring的配置文件,一般来说,就是BeanFactory和ApplicationContext.最常使用的、简单的BeanFactory实现是org.springframework.beans.factory.xml.XmlBeanFactory,其加载方式为:BeanFactory factory = new XmlBeanFactory(Resource resource) 这里resource必须是xml格式。Resource包括: AbstractResource, ClassPathResource, FileSystemResource, InputStreamResource, ServletContextResource, UrlResource.这篇文章 谈了常用的三种:ClassPathResource, FileSystemResource, InputStreamResource. ApplicationContext包括了BeanFactory的所有功能,也要比BeanFactory强大的多(以后会详细介绍的)。这里只简单的使用了ClassPathXmlApplicationContext加载了Bean配置文件。你可以将log4j.properties中的“Warn”改为“Debug”, 对比一下和ClassPathResource的输出, 在Eclipse中,bean2.xml、bean4xml虽然都是放在源文件夹(src)目录下,但实际上,是由已经编译好的Test.class从类文件夹(这里是bin文件夹)中加载的。 上一页 [1] [2] [3]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表