`

BoneCP使用配置

 
阅读更多
官方网站介绍的关于BoneCP
BoneCP is a fast, free, open-source, Java database connection pool (JDBC Pool) library. If you are familiar with C3P0 and DBCP then you already know what this means. For the rest, this is a library that will manage a database connection for you to get faster database access in your application.


在Spring 当中配置BoneCP
可以使用方式:Spring+LazyDataSource(目前使用的是这样的配置)

1
数据库驱动包等等的都不罗嗦了。说一下依赖包
Google Guava包和 SLF4J logging 包.其中SLF4J logging需要的是slf4j-api-1.6.4.jar和slf4j-log4j12-1.6.4.jar两个即可。
2
配置文件编写
applicationContext.xml
<!-- Spring bean configuration. Tell Spring to bounce off BoneCP -->
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
        <property name="targetDataSource">
            <ref local="mainDataSource" />
        </property>
    </bean>
	<bean id="placeholderConfig"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location">
			<value>classpath:init.properties</value>
		</property>
	</bean>
	<bean id="mainDataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close" dependency-check="none">
		<property name="driverClass">
			<value>${datasource.driverClassName}</value>
		</property>
		<property name="jdbcUrl">
			<value>${datasource.url}</value>
		</property>
		<property name="username">
			<value>${datasource.username}</value>
		</property>
		<property name="password">
			<value>${datasource.password}</value>
		</property>
 
		<property name="idleConnectionTestPeriod">
			<value>${boneCP.idleConnectionTestPeriod}</value>
		</property>
 
		<property name="idleMaxAge">
			<value>${boneCP.idleMaxAge}</value>
		</property>
		<property name="maxConnectionsPerPartition">
			<value>${boneCP.maxConnectionsPerPartition}</value>
		</property>
		<property name="minConnectionsPerPartition">
			<value>${boneCP.minConnectionsPerPartition}</value>
		</property>
		<property name="partitionCount">
			<value>${boneCP.partitionCount}</value>
		</property>
		<property name="acquireIncrement">
			<value>${boneCP.acquireIncrement}</value>
		</property>
		<property name="statementsCacheSize">
			<value>${boneCP.statementsCacheSize}</value>
		</property>
		<property name="statementsCachedPerConnection">
			<value>${boneCP.statementsCachedPerConnection}</value>
		</property>
		<property name="releaseHelperThreads">
			<value>${boneCP.releaseHelperThreads}</value>
		</property>
	</bean>

init.properties
datasource.type=oracle
datasource.driverClassName=oracle.jdbc.driver.OracleDriver
datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
datasource.username=scott
datasource.password=tiger
 
 
boneCP.idleConnectionTestPeriod=60
boneCP.idleMaxAge=240   
boneCP.maxConnectionsPerPartition=30
boneCP.minConnectionsPerPartition=10
boneCP.partitionCount=3
 
boneCP.acquireIncrement=5                           
boneCP.statementsCacheSize=100
boneCP.statementsCachedPerConnection=30
boneCP.releaseHelperThreads=3

3
配置slf4j时候报错:
Exception in thread "main" java.lang.IllegalAccessError: tried to access field
org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
   at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)

解决办法是slf4j的版本太低。更换最新的版本即可。
至此结束。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics