当前位置:首页 > 全部子站 > IT > 思科认证

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

来源:长理培训发布时间:2017-12-19 15:40:28

 百度广告

  考试吧编辑整理: 快速上手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文件夹)中加载的。

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部