一、由於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&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;
這種方式也能夠用來裝配具體的屬性,便於合理管理相關配置