spring讀取properties和其他配置文件的幾種方式


1、因為spring容器的一些機制,在讀取配置文件進行數據庫的配置等等是很有必要的,所以我們要考慮配置文件的的讀取方式以及各個方式的實用性

2、配置文件的讀取方式我這里介紹2種,目的是掌握這2種就可以很好的應用了

3、這里我的properies配置文件如下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/m_model?useUnicode=true&characterEncoding=utf8
username=root
password=root

4、第一種讀取方式:一種采用bean的配置方式,一種是標簽的形式

  1)bean的配置方式(推薦使用這種方式)

  <bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <!-- 如果是單個文件可以按照注釋的方式來配置 -->
        <!-- <property name="location" value="classpath:conf/spring-config.properties"/> -->
        <property name="locations">
            <array>
                <value>classpath:conf/spring-config.properties</value>
            </array>
        </property>
    </bean>
    
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
    </bean>

  2)標簽的配置方式

   <context:property-placeholder location="classpath:conf/spring-config.properties"/>
    
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
    </bean>

問題:這里我遇到了讀取配置處錯的問題:

會出現亂碼的情況,然后我找了一些處理方式
  (1)修改properties針對字符的配置

url=jdbc:mysql\://localhost\:3306\/m_model?useUnicode=true&amp;characterEncoding=utf8

  (2)加入讀取配置時進行文件編碼

<context:property-placeholder location="classpath:conf/spring-config.properties" file-encoding="UTF-8"/>  

這兩種方式我都試過了,目前還不知道什么原因導致的亂碼問題。有大神可以指教一下
指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!

5、是用util:properties便簽來實現的,這種方式就是單純的來讀取配置文件

<util:properties id="config" location="classpath:conf/spring-config.properties"/>
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="#{config.driver}"/>
        <property name="url" value="#{config.url}"/>
        <property name="username" value="#{config.username}"/>
        <property name="password" value="#{config.password}"/>
    </bean>
    

 注意:這里是采用#{id.屬性}來實現具體的讀取,上面是直接$(屬性來實現的)

6、這兩種方式是針對於xml配置xml賦值的方式來實現,在使用過程中也可以使用通過標簽的方式給具體的java代碼賦值,便於管理

@Value("#{config.username}")
private String userName;

這種方式也可以用來裝配具體的屬性,便於合理管理相關配置

 


免責聲明!

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



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