• Spring使用外部的配置文件


    在使用Spring做web项目的时候,通常会使用到数据库的连接信息

    jdbcUrl   
    driverClass   
    username   
    password   

    那么应该如何使用这些属性呢?

    如在Spring中使用数据库连接池(数据源)

    你可能会这样写

    <!-- 配置数据库连接池 ComboPooledDataSource -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <!-- 基本的连接信息 -->
        <property name="jdbcUrl" value="jdbc:mysql:///mybatis"/>
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <property name="user" value="root"/>
        <property name="password" value="root"/>
        <!-- 一些管理的配置 -->
        <property name="initialPoolSize" value="3"></property>
        <property name="minPoolSize" value="3"></property>
        <property name="maxPoolSize" value="5"></property>
        <property name="acquireIncrement" value="3"></property>
        <property name="maxIdleTime" value="1800"></property>
    </bean>

    这是一种硬编码,如果数据库的连接环境变了,我们需要去beans.xml这个文件中进行修改,如果这个文件比较大,内容很多,找到这些信息就挺麻烦的。

    怎么办呢,将这些信息提取出来,放在单独一个属性文件中

    jdbc.properties,以后想改数据库连接环境的话改这个文件就可以了。

    jdbcUrl        = jdbc:mysql:///mybatis
    driverClass    = com.mysql.jdbc.Driver
    username       = root
    password       = root

    那么问题又来了,beans.xml文件需要读取jdbc.properties中的信息,我们需要告诉它去哪儿找jdbc.properties文件,怎么办呢?

    这就涉及到本讲讨论的问题:Spring使用外部的配置文件

    两种方式

    1.常用,较简单

    <!--加载外部的properties文件(方式一),用于解析${}形式的变量。-->
    <!--如果需要加载多个properties文件,就写在一起,之间使用逗号隔开。-->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    2.

    <!-- 加载外部的properties文件(方式二) -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <!--可以有多个-->
                <value>classpath:jdbc.properties</value>
            </list>
        </property>
    </bean>

    有了此配置之后,数据源的配置就可以变为

    <!-- 加载外部的properties文件(方式一),用于解析${}形式的变量。 
            如果需要加载多个properties文件,就写在一起,之间使用逗号隔开。    -->
        <context:property-placeholder location="classpath:jdbc.properties"/>
    
    <!-- 配置数据库连接池 ComboPooledDataSource -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <!-- 基本的连接信息 -->
        <property name="jdbcUrl" value="${jdbcUrl}"/>
        <property name="driverClass" value="${driverClass}"/>
        <property name="user" value="${username}"/>
        <property name="password" value="${password}"/>
        <!-- 一些管理的配置 -->
        <property name="initialPoolSize" value="3"></property>
        <property name="minPoolSize" value="3"></property>
        <property name="maxPoolSize" value="5"></property>
        <property name="acquireIncrement" value="3"></property>
        <property name="maxIdleTime" value="1800"></property>
    </bean>
  • 相关阅读:
    PAIP.paip.手机离线ROOT过程总结
    paip.程序设计扫号器跑号器结果分类设计
    PAIP.测试硬盘的成色以及速率
    paip.httpd.conf 是空的.txt
    paip.c#.nett 系统托盘动态图标闪烁图标
    paip.验证码识别反馈法提高识别率
    paip.提升用户体验找回密码的设
    paip.sql2008 客户端软件绿色版V319
    提升用户体验自动邮编提示与验证地址
    PAIP.提升性能---LISTBOX加载30万大数据量终结方案
  • 原文地址:https://www.cnblogs.com/winner-0715/p/5426532.html
Copyright © 2020-2023  润新知