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

一、由於spring容器的一些機制,在讀取配置文件進行數據庫的配置等等是頗有必要的,因此咱們要考慮配置文件的的讀取方式以及各個方式的實用性java

二、配置文件的讀取方式我這裏介紹2種,目的是掌握這2種就能夠很好的應用了mysql

三、這裏個人properies配置文件以下:spring

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

四、第一種讀取方式:一種採用bean的配置方式,一種是標籤的形式sql

  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)標籤的配置方式apache

   <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

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

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

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

這兩種方式我都試過了,目前還不知道什麼緣由致使的亂碼問題。有大神能夠指教一下
指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!3d

五、是用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.屬性}來實現具體的讀取,上面是直接$(屬性來實現的)

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

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

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

相關文章
相關標籤/搜索