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方法

      

     

  • 相关阅读:
    C++疑难杂症
    程序中的错误、异常处理框架设计
    客户端ARPG角色行为模型
    http协议
    MySQL数据库开发(2)
    MySQL数据库开发(1)
    网络编程进阶及并发编程
    网络编程-SOCKET开发
    面向对象编程
    常用模块
  • 原文地址:https://www.cnblogs.com/jetqiu/p/12028719.html
Copyright © 2011-2022 走看看