properties配置文件在spring中的取值方式


Spring在XML文件中(注冊Bean),可以通過${屬性名}使用properties文件配置的值;在代碼中使用@Value注解讀取properties的屬性值。

一、Spinrg的Bean XML定義中,可以通過${屬性名}使用properties文件配置的值

  加載properties配置文件,如下是寫法比較簡單的方式: 

  單一配置文件加載:

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

  使用通配符“*”配置多個文件,個人比較傾向於通配符的寫法:

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

  加載多個配置文件通常還有如下的寫法:

<bean id="propertyResources" class="java.util.ArrayList">  

  <constructor-arg>  

    <list>  

      <!-- 這里支持多種尋址方式:classpath和file -->  

      <value>classpath:/opt/demo/config/demo-db.properties</value>  

      <!-- 推薦使用file的方式引入,這樣可以將配置和代碼分離 -->  

      <value>file:/opt/demo/config/demo-mq.properties</value>  

      <value>file:/opt/demo/config/demo-remote.properties</value>  

    </list>  

   </constructor-arg>  

</bean>  

配置文件中的取值方式${屬性名}

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
  <property name="url" value="${jdbc.url}" />
  <property name="username" value="${jdbc.username}" />
  <property name="password" value="${jdbc.password}" />
  <property name="driverClassName" value="${jdbc.driver}" />
  <property name="maxActive" value="10" />
  <property name="minIdle" value="5" />
</bean>

二、使用@Value注解讀取properties文件配置的值,再給字段賦值

@Value的值有三種類型,#{} 、${} 和 #{'${}'} ,其實是#{}和${}這兩種類型,#{'${}'} 這種是前兩種的嵌套使用

1、  #{expression?:default value}

properties配置文件中的屬性名稱不能帶點,否則取不到值,會報錯。如下案例其中prop為spring配置文件中的bean  ID值。

@Value("#{prop.name}")
 
     @Value("#{prop.age}")
2、${property:default value}
  ${}這種值,只用來讀取properties配置文件中的屬性值, :  前面的是屬性名稱,:  后面的是默認值。這種類型的值,卻可以讀取帶點的屬性值。
    @Value("${name}")
 
    @Value( "${age}")
3、#{'${}'}

這種類型的Value值,是#{}里面嵌套${}使用,所以必須按照上述的(1)(2)兩種類型的實現方式,配置properties文件,才可以使用這種方式的值

    @Value("#{'${age}'}")

轉載:https://blog.csdn.net/yh_zeng2/article/details/76222905


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM