• Spring PropertyPlaceholderConfigure 载入配置文件


    在開始这篇博客的主题之前,我们先来了解一下Spring配置文件以及包括的相关内容。





    图片来自:http://book.51cto.com/art/201004/193743.htm(表示感谢)

    Spring同意我们通过外部属性文件来配置其容器上下文属性值。

    比如。对于数据源中完毕连接数据库的部分。我们能够通过属性文件里的键值对完毕对属性值的填充,类似${key}。其关系例如以下:

            

     

    问题一. Spring怎么载入单个属性文件?

    方法一:通过申明PropertyPlaceholderConfigurer bean对象完毕配置文件的载入。

    <beanid="testProperties"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
     
        <propertyname="location"value="classpath:test.properties"/>
     
    </bean>

    当中test.properties属性文件内容例如以下:

    dbc.driverClassName=net.sourceforge.jtds.jdbc.Driver
    jdbc.url=jdbc:jtds:sqlserver://localhost:1433/test
    jdbc.username=sa
    jdbc.password=123456

    载入之后,再通过${key}完毕属性值得填充,比如:

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

    方法二:通过context:property-placeholder属性完毕载入

    详细例如以下:

    <context:property-placeholderlocation="classpath:test.properties" />

    问题二:上述载入方式时载入一个properties文件,假设要载入多个文件,该怎样实现?

    事实上非常easy,例如以下:

    <propertyname="systemPropertiesModeName"value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
        <property name="ignoreResourceNotFound" value="true" />
           <property name="locations">
               <list>
                  <value>classpath:test1.properties</value>
                  <value>classpath:test2.properties </value>
               </list>
           </property>

    当中。ignore-resource-not-found:假设属性文件找不到,是否忽略,默认false,即不忽略,找不到将抛出异常。

    systemPropertiesModeName:指示后面的配置文件里的值是否会覆盖前面的值,

    SYSTEM_PROPERTIES_MODE_FALLBACK:在解析一个占位符的变量的时候。假设不能获取到该变量的值。就会拿系统属性来尝试,

    SYSTEM_PROPERTIES_MODE_OVERRIDE:在解析一个占位符的时候。会先用系统属性来尝试,然后才会用指定的属性文件,

    SYSTEM_PROPERTIES_MODE_NEVER:从来都不会使用系统属性来尝试。

     

    问题三:有些时候,我们不希望载入project文件夹属性文件,而希望载入磁盘文件,如(D:/config/test.properties)

    使用file:///或file:完毕绝对路径的载入

    例如以下:

    <propertyname="location"value="file:///D:/config/test.properties"/>


  • 相关阅读:
    性能测试工具LoadRunner19-LR之Controller IP欺骗
    JavaScript—06数组与函数
    JavaScript—05流程控制与代码规范要求
    JavaScript—04运算符
    JS做简单的留言板
    JavaScript—03 变量与数据类型
    JavaScript—02 JS组成及注释等
    JavaScript—01汇编语言和计算机基础脑图
    01移动端布局基础-脑图
    解决粘包-复杂版
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/6880165.html
Copyright © 2020-2023  润新知