• Spring使用外部属性文件


    一、在 Spring Config 文件中配置 Bean 时,有时候需要在 Bean 的配置里添加 系统部署的细节信息, 如文件路径,数据源配置信息。而这些部署细节实际上需要在配置文件外部来定义。

    二、Spring 提供了一个 PropertyPlaceholderConfigurer 的 BeanFactory 后置处理器。这个处理器允许用户将 Bean 的配置部分内容外移到属性文件中,然后可以在 Bean 的配置文件

    里使用形式为 ${var}的变量,PropertyPlaceholderConfigurer 从属性文件里加载属性,并使用这些属性来替换变量。

    三、Spring 还允许在属性文件中使用 ${key},以属性间的互相引用。

    四、使用:需要注册 PropertyPlaceholderConfigurer 。通过 <context:property-placeholder location="props.properties"/> 这种方式来指定属性文件。

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
        <!--<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="user" value="root"/>
            <property name="password" value="lgh123"/>
            <property name="driverClass" value="com.mysql.jdbc.Driver"/>
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?user=root&amp;password=lgh123&amp;useUnicode=true&amp;characterEncoding=UTF8&amp;useSSL=true"/>
        </bean>-->
    
        <!--导入属性文件-->
        <context:property-placeholder location="classpath:db.properties"/>
        <!--使用外部的属性文件的属性配置-->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="user" value="${user}"/>
            <property name="password" value="${password}"/>
            <property name="driverClass" value="${driverClass}"/>
            <property name="jdbcUrl" value="${jdbcUrl}"/>
        </bean>
    </beans>

    db.properties

    user=root
    password=lgh123
    driverClass=com.mysql.jdbc.Driver
    jdbcUrl=jdbc:mysql://localhost:3306/test?user=root&amp;password=lgh123&amp;useUnicode=true&amp;characterEncoding=UTF8&amp;useSSL=true
    

    测试:

    package com.xiya.spring.beans.properties;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import javax.sql.DataSource;
    import java.sql.SQLException;
    
    /**
     * Created by N3verL4nd on 2017/3/22.
     */
    public class Main {
        public static void main(String[] args) throws SQLException {
            ApplicationContext context = new ClassPathXmlApplicationContext("beans-properties.xml");
    
            DataSource dataSource = (DataSource) context.getBean("dataSource");
    
            System.out.println(dataSource.getConnection());
        }
    }
    

  • 相关阅读:
    [Angularjs]ng-switch用法
    [Asp.net Mvc]通过UrlHelper扩展为js,css静态文件添加版本号
    [转]支持高并发的IIS Web服务器常用设置
    [Redis]c# redis缓存辅助类
    [asp.net mvc]自定义filter
    [C#]exchange发送,收件箱操作类
    [bug]The file ‘/xxx/xxx.aspx’ has not been pre-compiled, and cannot be requested
    [Angularjs]自定义指令
    mycat介绍
    fdLocalSql使用方法
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/6616201.html
Copyright © 2020-2023  润新知