电话:0731-83595998
导航

快速上手Spring加载Bean配置文件

来源: 2017-12-19 15:40

 百度广告

  考试吧编辑整理: 快速上手Spring 加载Bean配置文件 创建项目

  新建一个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">

  

  

  

  InputStreamResource(InputStream inputStream)value>

  property>

  bean>

  beans>

  bean2.xml、bean3.xml、bean4.xml与bean1.xml相似,仅仅需要替换一下值即可。重要的注意文件的存放位置。这里只给出不同的代码;

  ? bean2.xml放在源文件夹(src)目录下

  bean2.xml(部分)

  

  ClassPathResource(String path)value>

  property>

  ? bean3.xml放在项目根目录下

  bean3.xml(部分)

  

  FileSystemResource(String path)value>

  property>

  ? bean4.xml放在源文件夹(src)目录下

  bean4.xml(部分)

  

  ApplicationContextvalue>

  property>

  Spring也可以使用属性文件来定义配置文件,

  ? bean.properties放在源文件夹(src)目录下

  bean.properties

  beanFile.class=javamxj.spring.beanfile.BeanFile

  beanFile.beanFile=properties

  还需要将上文《快速上手Spring--2.HelloWorld(2)》中的log4j.properties复制到src目录下。

  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文件夹)中加载的。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端