• spring读取prperties配置文件(1)


    博客地址http://www.cnblogs.com/shizhongtao/p/3438431.html

    属性文件命名是*.properties,在java中,用类java.util.Properties来处理,例如我创建文件my.properties,然后加入属性

    filename=你好
    path=D:\app

    那么在java中就可以这样读取属性

    InputStream in=App.class.getResourceAsStream ("/my.properties");
            Properties pro=new Properties();
            try
            {
                pro.load(in);
                System.out.println(pro.getProperty("filename"));
            } catch (IOException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                if(in!=null){
                    try
                    {
                        in.close();
                    } catch (IOException e)
                    {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }

    上面代码中只是读取了,其中的filename属性,不过会出现一个问题,就是中文乱码的问题,这是因为inputstream是按照字节流读取,每次读一个字节,而每个汉字是两个字节;所以会出现乱码,我们可以这样修改,(当然你也可以用fileReader这个类,因为FileREder用的是系统默认字符编码,只要你默认编码支持中文就可以了。)

    new InputStreamReader(in,"utf-8");
    pro.load(new InputStreamReader(in,"utf-8"));
    System.out.println(pro.getProperty("filename"));

    在spring中,利用配置文件读取相应的配置,方便项目一些变量的修改,例如数据库配置、文件保存位置、类中不固定的一些变量值等等。

    通常我们会建一个名字为db.propreties的属性文件。里面内容如下:

    db.connection.driver_class=oracle.jdbc.driver.OracleDriver
    db.connection.url=jdbc:oracle:thin:@localhost:1521:orcl
    db.connection.username=test
    db.connection.password=test

    然后在spring中用PropertyPlaceholderConfigurer类来读取属性,这个类读取属性文件非常灵活,你可以配置编码 <property name="fileEncoding">来配置编码。具体使用可以参看官方的文档http://docs.spring.io/spring/docs/3.2.5.RELEASE/spring-framework-reference/htmlsingle/#beans-factory-placeholderconfigurer

    1 <bean id="propertyConfigurer"        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    2     <property name="locations">
    3         <list>
    4             <value>classpath:/db.properties</value>
    5         </list>
    6     </property>
    7 </bean>

    在spring2.5以后的版本中,读取属性文件也可以这样配置,与上面的效果一样。

    <context:property-placeholder location="classpath:db.properties"/>

    这样在我们配置数据库的dataSource时候就可以如下配置:

          class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
            <property name="driverClassName">
                <value>${db.connection.driver_class}</value>
            </property>
            <property name="url">
                <value>${db.connection.url}</value>
            </property>
            <property name="username">
                <value>${db.connection.username}</value>
            </property>
            <property name="password">
                <value>${db.connection.password}</value>
            </property>
        </bean>

    引申:如果想要PropertyPlaceholderConfigurer用anotation的方式,去注入属性,我们该如何写呢?

    spring读取prperties配置文件(2)

  • 相关阅读:
    Ozone数据探查服务的增量数据更新机制
    HDFS的块Topology位置重分布
    聊聊更为高效的ACL认证方式
    YARN Federation的架构设计
    Confluence 6 用户宏示例
    Confluence 6 用户宏示例
    Confluence 6 用户宏示例
    Confluence 6 用户宏最佳实践
    Confluence 6 编辑和删除用户宏
    Confluence 6 创建一个用户宏
  • 原文地址:https://www.cnblogs.com/shizhongtao/p/3438431.html
Copyright © 2020-2023  润新知