`

Spring引入外部配置文件

 
阅读更多

Spring引入c3p0数据源外部配置文件

 

1. 导入jdbc\c3p0依赖

  <dependency>
	<groupId>c3p0</groupId>
	<artifactId>c3p0</artifactId>
	<version>0.9.1.2</version>
    </dependency>
  <dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.18</version>
 </dependency>

 

2. Java

package com.spring.properties;

import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class Main {

	public static void main(String[] args) {
		ApplicationContext etx = new ClassPathXmlApplicationContext("beans-properties.xml");
		//1. 内部定义
		DataSource dataSource = (DataSource) etx.getBean("dataSource");
		System.out.println(dataSource);
		
		//2. 外部定义
		DataSource dataSource1 = (DataSource) etx.getBean("dataSource1");
		System.out.println(dataSource1);

	}

}

 

XML:

<?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:p="http://www.springframework.org/schema/p"
	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-4.2.xsd">
<!-- 1. 内部定义 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
		p:driverClass="com.mysql.jdbc.Driver"
		p:user="root" 
		p:password="123456" 
		p:maxPoolSize="50" 
		p:minPoolSize="1" 
		p:initialPoolSize="1"
		p:maxIdleTime="20"
		p:jdbcUrl="jdbc:mysql:///test"/>
		
	<!-- 2,引入外部contextSchema命名空间; 2,导入外部配置文件 -->	
	<context:property-placeholder location="classpath:./ab.properties"/>	
	<bean id="dataSource1" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
		p:driverClass="${driverClass}"
		p:user="${user}" 
		p:password="${password}" 
		p:maxPoolSize="${maxPoolSize}" 
		p:minPoolSize="${minPoolSize}" 
		p:initialPoolSize="${initialPoolSize}"
		p:maxIdleTime="${initialPoolSize}"
		p:jdbcUrl="${jdbcUrl}">	
		
		</bean>

</beans>

 外部配置文件db.properties

driverClass=com.mysql.jdbc.Driver
user=root 
password=123456 
maxPoolSize=50 
minPoolSize=1 
initialPoolSize=1
maxIdleTime=20
jdbcUrl=jdbc:mysql:///test/

 

运行结果:

信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1hge1hk9d1qgq3ukke56np|17d677df, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hge1hk9d1qgq3ukke56np|17d677df, idleConnectionTestPeriod -> 0, initialPoolSize -> 1, jdbcUrl -> jdbc:mysql:///test, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 20, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 50, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 1, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1hge1hk9d1qgq3ukke56np|17d677df, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hge1hk9d1qgq3ukke56np|17d677df, idleConnectionTestPeriod -> 0, initialPoolSize -> 1, jdbcUrl -> jdbc:mysql:///test, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 20, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 50, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 1, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
十二月 27, 2015 9:49:33 上午 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager
信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1hge1hk9d1qgq3ukke56np|16022d9d, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hge1hk9d1qgq3ukke56np|16022d9d, idleConnectionTestPeriod -> 0, initialPoolSize -> 1, jdbcUrl -> jdbc:mysql:///test/, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 1, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 50, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 1, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1hge1hk9d1qgq3ukke56np|16022d9d, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hge1hk9d1qgq3ukke56np|16022d9d, idleConnectionTestPeriod -> 0, initialPoolSize -> 1, jdbcUrl -> jdbc:mysql:///test/, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 1, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 50, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 1, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]

 

 

分享到:
评论

相关推荐

    Spring动态加载配置文件

    在Spring框架中,动态加载配置文件是一项重要的功能,它允许我们在程序运行时改变或更新配置,而无需重启应用。这在开发和生产环境中都具有很高的实用价值,尤其是在配置需要频繁调整或者希望实现热更新的场景下。...

    Springboot引用外部配置文件的方法步骤

    于是,我们可以将 `spring.config.location` 写入 `application.properties` 配置文件中,然后指定一个固定的外部配置文件来获取信息。 但是,这种方式也存在一些问题,例如,如果我们的配置文件中有以下信息:`my...

    springcloud配置中心搭建以及git多文件夹存放配置文件

    ### Spring Cloud Config 配置中心搭建与 Git 多文件夹存放配置文件 #### 一、Spring Cloud Config 配置中心简介 Spring Cloud Config 是一种分布式配置解决方案,它为微服务架构中的应用程序提供了一种集中式的...

    spring+mybatis+atomikos配置文件及相关包(最新版)

    本资源"spring+mybatis+atomikos配置文件及相关包(最新版)"提供了整合Spring、MyBatis和Atomikos的配置文件和相关库,以支持在分布式环境下的事务管理。下面将详细解释这三个组件以及它们在分布式事务中的作用。 ...

    详解spring boot引入外部jar包的坑

    Spring Boot 引入外部 Jar 包的坑 Spring Boot 框架在实际项目开发中...在 Spring Boot 项目中引入外部 Jar 包需要注意以上几点,以免陷入坑中,同时也需要注意 Maven 的配置,以便正确地将 Jar 包包含在生成的包中。

    Spring 整合多个配置文件的方法

    我们可以通过 &lt;import&gt; 来引入多个外部配置文件,resource 属性支持 Spring 的标准资源路径。 大型应用的配置文件整合 大型应用为了防止开发时发生配置文件资源竞争现象,或者为了使模块便于拆分,往往每个模块都...

    spring2.5的applicationContext配置文件

    在Spring 2.5版本中,这个配置文件引入了许多增强的功能,提升了开发效率和灵活性。下面我们将详细探讨`applicationContext.xml`在Spring 2.5中的重要知识点。 1. **Bean的定义**:在`applicationContext.xml`中,...

    Spring配置文件

    Spring允许通过`import`元素导入其他配置文件,或者使用`@Import`注解在Java配置中引入其他配置类。 9. ** Spring Boot **:Spring Boot简化了Spring应用的启动和配置过程,它默认提供了一套标准的配置,开发者只...

    【SpringBoot探索三】添加配置文件参考案例

    - **外部加载**:除了类路径下的配置文件,还可以通过`--spring.config.location`命令行参数指定额外的配置文件位置。 - **环境变量**:使用`SPRING_APPLICATION_JSON`环境变量或`@PropertySource`注解也可以引入...

    bboss ioc配置文件中使用外部属性文件介绍

    接下来,我们需要在`bboss-ioc.xml`配置文件中引入这个外部属性文件。BBoss提供了一个`&lt;property-placeholder&gt;`标签来实现这一点: ```xml &lt;value&gt;classpath:config.properties ``` 在上述配置中,`...

    spring配置详解

    以上只是`applicationContext.xml`配置文件中一部分常见的知识点,实际应用中还有更多高级特性和用法,例如:工厂方法、属性文件外部化、bean的懒加载等。通过深入理解和熟练运用这些配置,开发者可以更好地利用...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件1

    在Spring Boot应用中,我们通常使用YAML或properties文件来管理配置,但有时也需要与传统的XML配置文件集成,特别是当我们需要处理遗留系统或是利用Spring的一些特定功能时。本篇文章将详细探讨如何在Spring Boot...

    说说在Spring中如何引用外部属性文件的方法

    然后,在 Spring 配置文件中,我们可以使用 PropertyPlaceholderConfigurer 来引用外部属性文件: ``` &lt;!-- 引入外部属性文件 --&gt; &lt;bean class="org.springframework.beans.factory.config....

    引用外部文件配置C3P0连接池.zip

    -- 引用外部配置文件中的C3P0参数 --&gt; ${c3p0.minPoolSize}"/&gt; ${c3p0.maxPoolSize}"/&gt; ${c3p0.acquireIncrement}"/&gt; ${c3p0.idleTestPeriod}"/&gt; ${c3p0.maxIdleTime}"/&gt; ``` 这里,我们使用了Spring的SpEL...

    加载properties配置文件的几种方法

    在Java开发中,尤其是使用SSM(Spring、Struts、MyBatis)框架时,配置文件的管理至关重要。Properties文件通常用于存储应用的配置参数,如数据库连接信息、系统设置等。本文将深入探讨在SSM框架下加载properties...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件3

    本篇文章将深入探讨在Spring Boot中如何读取不同路径下的`applicationContext.xml`配置文件。 首先,理解Spring Boot的启动流程至关重要。Spring Boot通过`SpringApplication`类来启动,它会默认寻找`src/main/...

    spring boot相关配置代码.zip

    - ** profiles**: Spring Boot 支持配置文件按环境(如 development, testing, production)划分,通过 `spring.profiles.active` 属性来激活特定环境的配置。 - **Actuator**: `spring-boot-starter-actuator` ...

    spring+proxool配置spring+proxool配置

    同时,我们还引入了一个外部配置文件`ProxoolConf.xml`,用于设置Proxool的具体参数,如最大连接数、最小连接数、超时时间等。 `ProxoolConf.xml`配置示例如下: ```xml &lt;driver-url&gt;jdbc:mysql://localhost:...

    spring4示例代码

    spring-2 演示了外部配置文件的引入(connection),spel(spring el)表达式 ,静态工厂方式及实例工厂方式及factorybean方式创建bean, spring的生命周期及BeanPostProcessor的使用,注解方式创建bean 及使用...

Global site tag (gtag.js) - Google Analytics