zoukankan      html  css  js  c++  java
  • spring配置文件、组件读取外部properties文件方式;PropertiesFactoryBean和PropertyPlaceholderConfigurer的区别

    一、spring配置文件、组件读取外部properties文件方式

    -- spring配置文件
    <bean id="mySqlDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="username"><value>${jdbc.user}</value></property> <property name="password"><value>${jdbc.password}</value></property> <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property> <property name="url"><value>${jdbc.url}</value></property> </bean>
    -- properties文件内容 jdbc.url
    =jdbc:mysql://localhost:3306/cp?useUnicode=true&amp;charaterEncoding=utf-8 jdbc.user=root jdbc.password=123456 jdbc.driverClass=com.mysql.jdbc.Driver

    方式一、

    在 spring 的配置文件中,加入引入until命名空间:

    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/util
            http://www.springframework.org/schema/util/spring-util-3.0.xsd"
    <util:properties id="propertiesReader" location="classpath:test.properties" /> 

    方式二、

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

    方式三、读取多个 properties 文件

    <bean id="propertiesReader"
    class="org.springframework.beans.factory.config.PropertiesFactoryBean">
      <property name="locations">
        <list>
             <!--只会到项目class路径中查找找文件-->
          <value>classpath:*.properties</value>
    
         <!--不仅会到当前项目class路径,还会到包括jar文件中(class路径)进行查找; 推荐第一种,比较快-->
         <!--<value>classpath:*.properties</value>-->
        </list>
      </property>
    </bean>

    <bean id="propertiesReader"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="locations">
        <list>
             <!--只会到项目class路径中查找找文件-->
          <value>classpath:*.properties</value>
    
         <!--不仅会到当前项目class路径,还会到包括jar文件中(class路径)进行查找; 推荐第一种,比较快-->
         <!--<value>classpath:*.properties</value>-->
        </list>
      </property>
    </bean>

    二、PropertiesFactoryBean和PropertyPlaceholderConfigurer的区别如下:

    使用 PropertyPlaceholderConfigurer 时,spring组件取值时 @Value表达式的用法是 @Value(value="${properties key}") ,

    使用 PropertiesFactoryBean 时,spring组件取值时@Value表达式的用法是 @Value(value="#{configProperties['properties key']}")

    @Value(value="${profit.rate.csProfitRate}")
    double rate;
     
    @Value(value="#{configProperties['profit.rate.csProfitRate']}")
    double rate2;
    
    // 变量要有getter和setter方法

      

     

  • 相关阅读:
    【腾讯Bugly干货分享】微信Tinker的一切都在这里,包括源码(一)
    【腾讯Bugly干货分享】iOS10 SiriKit QQ适配详解
    【腾讯Bugly干货分享】安卓单元测试:What, Why and How
    【腾讯Bugly干货分享】Android Linker 与 SO 加壳技术
    【腾讯优测干货分享】Android内存泄漏的简单检查与分析方法
    【腾讯Bugly经验分享】程序员的成长离不开哪些软技能?
    【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
    从零开始安装Hadoop视频教程
    如何在MAC机器中实现移动设备WiFI上网(没有专门的无线路由器的情况)
    Alfresco安装与配置图解
  • 原文地址:https://www.cnblogs.com/jetqiu/p/12028719.html
Copyright © 2011-2022 走看看