1、因为spring容器的一些机制,在读取配置文件进行数据库的配置等等是很有必要的,所以我们要考虑配置文件的的读取方式以及各个方式的实用性

2、配置文件的读取方式我这里介绍2种,目的是掌握这2种就可以很好的应用了

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

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/m_model?useUnicode=true&characterEncoding=utf8username=rootpassword=root

4、第一种读取方式:一种采用bean的配置方式,一种是标签的形式

  1)bean的配置方式(推荐使用这种方式)

  <bean id="propertyPlaceholderConfigurer" class="org.spring work.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、这两种方式是针对于 配置 赋值的方式来实现,在使用过程中也可以使用通过标签的方式给具体的java代码赋值,便于管理

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

这种方式也可以用来装配具体的属性,便于合理管理相关配置

 

收藏 打印