论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
快速上手Spring--3.加载Bean配置文件
 作者:佚名     2007-3-14 17:32:13        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

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,测试一下。

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放在项目根目录下:

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


责任编辑:lss
  相关新闻
Exchange服务器快速恢复
计算机等级考试二级快速复习法
快速上手Spring--4.安装和使用IDE
快速上手Spring--5.Bean的标志符
快速上手Spring--9.Lookup方法注入
快速上手Spring--8.集合对象注入
Oracle中如何快速的卸载和加载数据
计算机考试二级快速复习法,基础教程网
快速上手Spring--10.任意方法的替换
Serv-U:快速构建功能强大FTP服务器
计算机考试二级快速复习法,基础教程网
计算机等级考试二级快速复习法
Oracle中如何快速的卸载和加载数据
教你用Oracle解析函数快速检查序列间隙
快速上手Spring--5.Bean的标志符
快速上手Spring--4.安装和使用IDE
快速上手Spring--6.Singleton的使用
快速上手Spring--10.任意方法的替换
快速上手Spring--9.Lookup方法注入
快速上手Spring--8.集合对象注入
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号