1. 程式人生 > 程式設計 >SpringBoot發現最新版Druid重大問題(坑)

SpringBoot發現最新版Druid重大問題(坑)

發現Druid問題

最近做專案,遇到大量插入的地方,經過大量的除錯,最終發現是Druid連線池的問題,(以前一個大專案就遇到過Druid的坑),果斷換成c3p0之後,壓力測試嘩嘩上去了。

下面是更換c3p0方法。

1.修改pom.xml

匯入c3p0依賴:

<dependency>
  <groupId>com.mchange</groupId>
  <artifactId>c3p0</artifactId>
  <version>0.9.5.5</version>
</dependency>

2.修改application.yml

spring:
 application:
  name: nh-tst
 http:
  encoding:
   charset: UTF-8
   enabled: true
   force: true
 datasource:
  driver-class-name: oracle.jdbc.driver.OracleDriver
 jpa:
  hibernate:
   ddl-auto: none
  show-sql: true
c3p0:
 jdbcUrl: jdbc:oracle:thin:@xxxxx:1522/prodpdb1
 user: xxxxxx
 password: xxxxxx
 driverClass: oracle.jdbc.driver.OracleDriver
 minPoolSize: 3
 maxPoolSize: 30
 maxIdleTime: 1800000
 acquireIncrement: 120
 maxStatements: 100000
 initialPoolSize: 5
 idleConnectionTestPeriod: 60
 acquireRetryAttempts: 30
 acquireRetryDelay: 10000
 breakAfterAcquireFailure: false
 testConnectionOnCheckout: false

3.增加DataSourceConfiguration.java類

package com.nh.fk.tst.config;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import com.mchange.v2.c3p0.ComboPooledDataSource;

@Configuration
public class DataSourceConfiguration {
 // c3p0 連線池
 @Bean(name = "dataSource")
 @Qualifier(value = "dataSource")
 @Primary
 @ConfigurationProperties(prefix = "c3p0")
 public DataSource dataSource() {
 return DataSourceBuilder.create().type(ComboPooledDataSource.class).build();
 }
}

打包,執行:世界又恢復了和平!!

到此這篇關於SpringBoot發現最新版Druid重大問題(坑)的文章就介紹到這了,更多相關SpringBoot Druid內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!