內(nèi)蒙古java團隊

          j2se,j2ee開發(fā)組
          posts - 139, comments - 212, trackbacks - 0, articles - 65
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Java讀取配置文件的幾種方法

          Posted on 2010-05-10 16:25 帥子 閱讀(285) 評論(0)  編輯  收藏 所屬分類: j2ee技術專區(qū)
          在現(xiàn)實工作中,我們常常需要保存一些系統(tǒng)配置信息,大家一般都會選擇配置文件來完成,本文根據(jù)筆者工作中用到的讀取配置文件的方法小小總結一下,主要敘述的是spring讀取配置文件的方法。

          ??? 一、讀取xml配置文件

          ??? (一)新建一個java bean

          package chb.demo.vo;

          public class HelloBean {
          ?private String helloWorld;

          ?public String getHelloWorld() {
          ? return helloWorld;
          ?}

          ?public void setHelloWorld(String helloWorld) {
          ? this.helloWorld = helloWorld;
          ?}
          }

          ??? (二)構造一個配置文件

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
          <beans>
          ?<bean id="helloBean" class="chb.demo.vo.HelloBean">
          ? <property name="helloWorld">
          ? <value>Hello!chb!</value>
          ? </property>
          ?</bean>
          </beans>

          ??? (三)讀取xml文件

          ??? 1.利用ClassPathXmlApplicationContext

          ApplicationContext context = new ClassPathXmlApplicationContext("beanConfig.xml");
          ?HelloBean helloBean = (HelloBean)context.getBean("helloBean");
          ?System.out.println(helloBean.getHelloWorld());

          ??? 2.利用FileSystemResource讀取

          Resource rs = new FileSystemResource("D:/software/tomcat/webapps/springWebDemo/WEB-INF/classes/beanConfig.xml");
          ? BeanFactory factory = new XmlBeanFactory(rs);
          ? HelloBean helloBean = (HelloBean)factory.getBean("helloBean");
          ? System.out.println(helloBean.getHelloWorld());

          ??? 值得注意的是:利用FileSystemResource,則配置文件必須放在project直接目錄下,或者寫明絕對路徑,否則就會拋出找不到文件的異常

          二、讀取properties配置文件

          ??? 這里介紹兩種技術:利用spring讀取properties 文件和利用java.util.Properties讀取

          ??? (一)利用spring讀取properties 文件

          ??? 我們還利用上面的HelloBean.java文件,構造如下beanConfig.properties文件:

          helloBean.class=chb.demo.vo.HelloBean
          helloBean.helloWorld=Hello!chb!

          ??? 屬性文件中的"helloBean"名稱即是Bean的別名設定,.class用于指定類來源。

          ??? 然后利用org.springframework.beans.factory.support.PropertiesBeanDefinitionReader來讀取屬性文件

          ? BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
          ? PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(reg);
          ? reader.loadBeanDefinitions(new ClassPathResource("beanConfig.properties"));
          ? BeanFactory factory = (BeanFactory)reg;
          ? HelloBean helloBean = (HelloBean)factory.getBean("helloBean");
          ? System.out.println(helloBean.getHelloWorld());

          ??? (二)利用java.util.Properties讀取屬性文件

          ??? 比如,我們構造一個ipConfig.properties來保存服務器ip地址和端口,如:

          ip=192.168.0.1
          port=8080

          ??? 則,我們可以用如下程序來獲得服務器配置信息:

          ? InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ipConfig.properties");
          ? Properties p = new Properties();
          ? try {
          ? p.load(inputStream);
          ? } catch (IOException e1) {
          ? e1.printStackTrace();
          ? }
          System.out.println("ip:"+p.getProperty("ip")+",port:"+p.getProperty("port"));

          主站蜘蛛池模板: 广河县| 九江县| 高密市| 邵武市| 邮箱| 肥城市| 商城县| 祁东县| 达尔| 兴文县| 合江县| 霍邱县| 肥乡县| 岳普湖县| 红河县| 合川市| 苏尼特右旗| 长顺县| 铅山县| 杭锦后旗| 三江| 苍山县| 广河县| 长葛市| 富蕴县| 大悟县| 华阴市| 佛教| 望城县| 双江| 紫云| 杭锦后旗| 南汇区| 平乐县| 梁平县| 遂宁市| 商城县| 兴国县| 舞阳县| 万安县| 辽阳县|