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

 

 

  

 

 

 


免責聲明!

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



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