Ich versuche, HikariCP in meiner Spring Boot (1.2.0.M1) -App einzurichten, damit ich es anstelle von Tomcat DBCP testen kann. Ich möchte den Verbindungspool in meiner Datei application.properties wie bei Tomcat konfigurieren, kann aber nicht herausfinden, wie ich das tun soll. Alle gefundenen Beispiele zeigen entweder den JavaConfig-Stil oder die Verwendung einer separaten HikariCP-Eigenschaftendatei. Kann mir jemand helfen, die Eigenschaftsnamen herauszufinden, um sie in application.properties zu konfigurieren? Ich möchte auch von der Verwendung des driverClassName-Ansatzes zum DataSourceClassName-Ansatz wechseln, da dieser sauberer aussieht und empfohlen wird. Ist dies auch in meinen application.properties-Dateien möglich?
Folgendes hatte ich für Tomcat DBCP (nur einige grundlegende Konfigurationen, die nicht vollständig gelöscht wurden)
spring.datasource.validation-query=SELECT 1
spring.datasource.max-active=10
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=5
spring.datasource.test-on-borrow=true
spring.datasource.test-on-return=true
Und ich verwende derzeit driverClassName und jdbc url, um die Verbindung herzustellen:
spring.datasource.url=jdbc:mysql://localhost:3306/myDb
spring.datasource.driverClassName=com.mysql.jdbc.Driver
quelle
spring.datasource.hikari.*
, Dokumentation: github.com/brettwooldridge/HikariCPAntworten:
@Configuration @ConfigurationProperties(prefix = "params.datasource") public class JpaConfig extends HikariConfig { @Bean public DataSource dataSource() throws SQLException { return new HikariDataSource(this); } }
application.yml
params: datasource: driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://localhost:3306/myDb username: login password: password maximumPoolSize: 5
AKTUALISIERT! Seit Version Spring Boot 1.3.0 :
application.yml
spring: datasource: type: com.zaxxer.hikari.HikariDataSource url: jdbc:h2:mem:TEST driver-class-name: org.h2.Driver username: username password: password hikari: idle-timeout: 10000
AKTUALISIERT! Seit Version Spring Boot 2.0.0 :
Der Standardverbindungspool wurde von Tomcat zu Hikari geändert :)
quelle
Ich
HikariCP
bin auf die Benchmarks gestoßen und war erstaunt. Ich wollte sie anstelle meiner Standardauswahl ausprobieren.C3P0
Zu meiner Überraschung hatte ich Probleme, dasconfigurations
Richtige zu finden, wahrscheinlich weil sich die Konfigurationen je nach verwendeter Kombination von Tech-Stacks unterscheiden.Ich habe ein Setup-
Spring Boot
Projekt mitJPA, Web, Security
Startern (Using Spring Initializer ) zur VerwendungPostgreSQL
als Datenbank mitHikariCP
als Verbindungspooling.Ich habe
Gradle
als Build-Tool verwendet und möchte mitteilen, was für mich unter den folgenden Annahmen funktioniert hat:Sie benötigen Folgendes,
build.gradle
wenn Sie Maven verwenden,Gradle
oder ein gleichwertigespom.xml
Element, wenn Sie Maven verwendenbuildscript { ext { springBootVersion = '1.5.8.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' apply plugin: 'war' group = 'com' version = '1.0' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter-aop') // Exclude the tomcat-jdbc since it's used as default for connection pooling // This can also be achieved by setting the spring.datasource.type to HikariCP // datasource see application.properties below compile('org.springframework.boot:spring-boot-starter-data-jpa') { exclude group: 'org.apache.tomcat', module: 'tomcat-jdbc' } compile('org.springframework.boot:spring-boot-starter-security') compile('org.springframework.boot:spring-boot-starter-web') runtime('org.postgresql:postgresql') testCompile('org.springframework.boot:spring-boot-starter-test') testCompile('org.springframework.security:spring-security-test') // Download HikariCP but, exclude hibernate-core to avoid version conflicts compile('com.zaxxer:HikariCP:2.5.1') { exclude group: 'org.hibernate', module: 'hibernate-core' } // Need this in order to get the HikariCPConnectionProvider compile('org.hibernate:hibernate-hikaricp:5.2.11.Final') { exclude group: 'com.zaxxer', module: 'HikariCP' exclude group: 'org.hibernate', module: 'hibernate-core' } }
Es gibt eine Reihe von Ausschlüssen oben
build.gradle
und das liegt daranjdbc-tomcat
Verbindungspool beim Herunterladen derspring-boot-starter-data-jpa
Abhängigkeiten auszuschließen . Dies kann erreicht werden, indem Siespring.datasource.type=com.zaxxer.hikari.HikariDataSource
auch einrichten. Ich möchte jedoch keine zusätzliche Abhängigkeit, wenn ich sie nicht benötigehibernate-core
beim Herunterladen voncom.zaxxer
Abhängigkeiten auszuschließen, und das liegt daran, dasshibernate-core
es bereits von heruntergeladen wurdeSpring Boot
und wir nicht mit unterschiedlichen Versionen enden möchten.hibernate-core
beim Herunterladen deshibernate-hikaricp
Moduls auszuschließen, das erforderlich ist, damit HikariCPorg.hibernate.hikaricp.internal.HikariCPConnectionProvider
als Verbindungsanbieter verwendet wird, anstatt veraltet zu seincom.zaxxer.hikari.hibernate.HikariConnectionProvider
Nachdem ich herausgefunden hatte,
build.gradle
was und was ich behalten sollte und was nicht, war ich bereit, einedatasource
Konfiguration in meine zu kopieren / einzufügenapplication.properties
und erwartete, dass alles mit Bravour funktioniert, aber nicht wirklich, und ich stieß auf die folgenden Problemecom.zaxxer.hikari.hibernate.HikariConnectionProvider
key/value
im Internet suchteapplication.properties
und sich darüber beschwertedataSource, dataSourceClassName, jdbcUrl
. Ich musste debuggenHikariConfig, HikariConfigurationUtil, HikariCPConnectionProvider
und fand heraus, dass ichHikariCP
die Eigenschaften nicht finden konnte,application.properties
weil sie anders benannt waren.Auf
HikariCP
jeden Fall musste ich mich hier auf Versuch und Irrtum verlassen und sicherstellen, dass die Eigenschaften (dh die Datenquelle, die Datenbankdetails enthält, sowie die Pooling-Eigenschaften) sowie das Sping-Boot-Verhalten sich wie erwartet verhalten die folgendeapplication.properties
Datei.server.contextPath=/ debug=true # Spring data source needed for Spring boot to behave # Pre Spring Boot v2.0.0.M6 without below Spring Boot defaults to tomcat-jdbc connection pool included # in spring-boot-starter-jdbc and as compiled dependency under spring-boot-starter-data-jpa spring.datasource.type=com.zaxxer.hikari.HikariDataSource spring.datasource.url=jdbc:postgresql://localhost:5432/somedb spring.datasource.username=dbuser spring.datasource.password=dbpassword # Hikari will use the above plus the following to setup connection pooling spring.datasource.hikari.minimumIdle=5 spring.datasource.hikari.maximumPoolSize=20 spring.datasource.hikari.idleTimeout=30000 spring.datasource.hikari.poolName=SpringBootJPAHikariCP spring.datasource.hikari.maxLifetime=2000000 spring.datasource.hikari.connectionTimeout=30000 # Without below HikariCP uses deprecated com.zaxxer.hikari.hibernate.HikariConnectionProvider # Surprisingly enough below ConnectionProvider is in hibernate-hikaricp dependency and not hibernate-core # So you need to pull that dependency but, make sure to exclude it's transitive dependencies or you will end up # with different versions of hibernate-core spring.jpa.hibernate.connection.provider_class=org.hibernate.hikaricp.internal.HikariCPConnectionProvider # JPA specific configs spring.jpa.properties.hibernate.show_sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.use_sql=true spring.jpa.properties.hibernate.id.new_generator_mappings=false spring.jpa.properties.hibernate.default_schema=dbschema spring.jpa.properties.hibernate.search.autoregister_listeners=false spring.jpa.properties.hibernate.bytecode.use_reflection_optimizer=false # Enable logging to verify that HikariCP is used, the second entry is specific to HikariCP logging.level.org.hibernate.SQL=DEBUG logging.level.com.zaxxer.hikari.HikariConfig=DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
Wie oben gezeigt, werden die Konfigurationen basierend auf den folgenden Namensmustern in Kategorien unterteilt
Es ist schwierig, auf ein Tutorial, einen Beitrag oder eine Ressource zu stoßen, die zeigt, wie die obige Eigenschaftendatei verwendet wird und wie die Eigenschaften benannt werden sollten. Nun, da hast du es.
Das oben Genannte
application.properties
mitbuild.gradle
(oder zumindest ähnlich) in eine Spring Boot JPA-Projektversion (1.5.8) zu werfen, sollte wie ein Zauber funktionieren und eine Verbindung zu Ihrer vorkonfigurierten Datenbank herstellen (dh in meinem Fall ist es PostgreSQL, die beideHikariCP & Spring
herausfinden,spring.datasource.url
auf welcher zu verwendender Datenbanktreiber).Ich habe nicht die Notwendigkeit gesehen, eine
DataSource
Bohne zu kreieren , und das liegt daran, dass Spring Boot in der Lage ist, alles für mich zu tun, indem ich nur nachschaue,application.properties
und das ist ordentlich.Der Artikel im Github- Wiki von HikariCP zeigt, wie Spring Boot mit JPA eingerichtet wird, es fehlen jedoch Erklärungen und Details.
Die beiden oben genannten Dateien sind auch als öffentlicher Inhalt verfügbar: https://gist.github.com/rhamedy/b3cb936061cc03acdfe21358b86a5bc6
quelle
Sie können einfach nur application.yml / application.properties verwenden. Es ist nicht erforderlich, eine
DataSource
Bean explizit zu erstellenSie müssen tomcat-jdbc ausschließen, wie von ydemartino erwähnt
Da Sie keine
DataSource
Bean erstellen , müssen Sie die Verwendung von Hikarispring.datasource.type
mit dem Wertcom.zaxxer.hikari.HikariDataSource
in application.yml / application.properties explizit angebenspring: datasource: hikari: connection-test-query: SELECT 1 FROM DUAL minimum-idle: 1 maximum-pool-size: 5 pool-name: yourPoolName auto-commit: false driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/myDb username: login password: password type: com.zaxxer.hikari.HikariDataSource
In Ihrer application.yml / application.properties können Sie Hikari-spezifische Parameter wie Poolgröße usw. in konfigurieren
spring.datasource.hikari.*
quelle
spring.datasource.type
ist ausreichend.DataSourceBuilder
sagt: Wenn sich Tomcat, HikariCP oder Commons DBCP im Klassenpfad befinden, wird einer von ihnen ausgewählt (in dieser Reihenfolge zuerst mit Tomcat). Meine Tests bestätigen dies.DataSourceConfiguration
das in der automatischen Konfiguration verwendet wird, hat die Konfigurationen abhängig davon,spring.datasource.type
ob es überhaupt eingestellt ist. Also habe ichtomcat-jdbc
auf meinem Klassenpfad und benutze immer noch HikariCP als meinen Pool. Meine Tests bestätigen dies. Vielleicht sprechen wir hier über sehr unterschiedliche Spring Boot-Versionen.Ich verwende Spring Boot 2.0.4.RELEASE. Hikari ist der Standardverbindungspool und
.hikari
wird nicht mehr benötigt.application.properties
spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.jdbcUrl=jdbc:mysql://localhost:3306/myDB... spring.datasource.username=xxx spring.datasource.password=xxx spring.datasource.poolname=myPool
application.yml
spring: datasource: driverClassName: com.mysql.jdbc.Driver jdbcUrl: jdbc:mysql://localhost:3306/myDB... username: xxx password: xxx poolName: myPool
Und
configuration
muss nicht erweitertHikariConfig
werden undDataSourceBuilder
kann wie bisher verwendet werden.@Configuration public class DataSourceConfiguration { @Bean(name="myDataSource") @ConfigurationProperties("spring.datasource") public DataSource myDataSource() { return DataSourceBuilder.create().build(); } }
quelle
Entsprechend der Dokumentation wird es geändert,
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html
Beispiel:
spring: datasource: url: 'jdbc:mysql://localhost/db?useSSL=false' username: root password: pass driver: com.mysql.jdbc.Driver hikari: minIdle: 10 idle-timeout: 10000 maximumPoolSize: 30
Dies sind die folgenden Konfigurationsänderungen, die wir auf hikari vornehmen können. Bitte fügen Sie sie entsprechend Ihren Anforderungen hinzu / aktualisieren Sie sie.
quelle
Sie benötigen keinen redundanten Code, um Eigenschaftswerte in Variablen einzufügen. Sie können Eigenschaften mit einer Eigenschaftendatei direkt festlegen.
Legen Sie die
hikari.properties
Datei in den Klassenpfad.driverClassName=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/myDb connectionTestQuery=SELECT 1 maximumPoolSize=20 username=... password=...
Und machen Sie eine Datenquellen-Bean wie diese.
@Bean(destroyMethod = "close") public DataSource dataSource() throws SQLException { HikariConfig config = new HikariConfig("/hikari.properties"); HikariDataSource dataSource = new HikariDataSource(config); return dataSource; }
quelle
Dies funktioniert für meine Boot-Anwendung, falls es hilft. Diese Klasse gibt an, nach welchen Eigenschaften das Konfigurationsobjekt sucht:
https://github.com/brettwooldridge/HikariCP/blob/2.3.x/hikaricp-common/src/main/java/com/zaxxer/hikari/AbstractHikariConfig.java
Ich denke, mehrere Datenquellen könnten durch Hinzufügen
datasource_whatever
zu den Eigenschaftsschlüsseln in der Quellkonfigurationsdatei unterstützt werden . Prost!@Configuration class DataSourceConfig { @Value('${spring.datasource.username}') private String user; @Value('${spring.datasource.password}') private String password; @Value('${spring.datasource.url}') private String dataSourceUrl; @Value('${spring.datasource.dataSourceClassName}') private String dataSourceClassName; @Value('${spring.datasource.connectionTimeout}') private int connectionTimeout; @Value('${spring.datasource.maxLifetime}') private int maxLifetime; @Bean public DataSource primaryDataSource() { Properties dsProps = [url: dataSourceUrl, user: user, password: password] Properties configProps = [ connectionTestQuery: 'select 1 from dual', connectionTimeout: connectionTimeout, dataSourceClassName: dataSourceClassName, dataSourceProperties: dsProps, maxLifetime: maxLifetime ] // A default max pool size of 10 seems reasonable for now, so no need to configure for now. HikariConfig hc = new HikariConfig(configProps) HikariDataSource ds = new HikariDataSource(hc) ds } }
quelle
Sie können den dataSourceClassName-Ansatz verwenden. Hier ist ein Beispiel für MySQL. (Getestet mit Federmanschette 1.3 und 1.4)
Zuerst müssen Sie tomcat-jdbc vom Klassenpfad ausschließen, da es zugunsten von hikaricp ausgewählt wird.
pom.xml
application.properties
spring.datasource.dataSourceClassName=com.mysql.jdbc.jdbc2.optional.MysqlDataSource spring.datasource.dataSourceProperties.serverName=localhost spring.datasource.dataSourceProperties.portNumber=3311 spring.datasource.dataSourceProperties.databaseName=mydb spring.datasource.username=root spring.datasource.password=root
Dann einfach hinzufügen
@Bean @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSource() { return DataSourceBuilder.create().build(); }
Ich habe hier ein Testprojekt erstellt: https://github.com/ydemartino/spring-boot-hikaricp
quelle
Sie können den dataSourceClassName-Ansatz nicht in application.properties-Konfigurationen verwenden, wie von @Andy Wilkinson angegeben. Wenn Sie trotzdem dataSourceClassName haben möchten, können Sie Java Config verwenden als:
@Configuration @ComponentScan class DataSourceConfig { @Value("${spring.datasource.username}") private String user; @Value("${spring.datasource.password}") private String password; @Value("${spring.datasource.url}") private String dataSourceUrl; @Value("${spring.datasource.dataSourceClassName}") private String dataSourceClassName; @Value("${spring.datasource.poolName}") private String poolName; @Value("${spring.datasource.connectionTimeout}") private int connectionTimeout; @Value("${spring.datasource.maxLifetime}") private int maxLifetime; @Value("${spring.datasource.maximumPoolSize}") private int maximumPoolSize; @Value("${spring.datasource.minimumIdle}") private int minimumIdle; @Value("${spring.datasource.idleTimeout}") private int idleTimeout; @Bean public DataSource primaryDataSource() { Properties dsProps = new Properties(); dsProps.put("url", dataSourceUrl); dsProps.put("user", user); dsProps.put("password", password); dsProps.put("prepStmtCacheSize",250); dsProps.put("prepStmtCacheSqlLimit",2048); dsProps.put("cachePrepStmts",Boolean.TRUE); dsProps.put("useServerPrepStmts",Boolean.TRUE); Properties configProps = new Properties(); configProps.put("dataSourceClassName", dataSourceClassName); configProps.put("poolName",poolName); configProps.put("maximumPoolSize",maximumPoolSize); configProps.put("minimumIdle",minimumIdle); configProps.put("minimumIdle",minimumIdle); configProps.put("connectionTimeout", connectionTimeout); configProps.put("idleTimeout", idleTimeout); configProps.put("dataSourceProperties", dsProps); HikariConfig hc = new HikariConfig(configProps); HikariDataSource ds = new HikariDataSource(hc); return ds; } }
Grund, warum Sie dataSourceClassName nicht verwenden können, da es eine Ausnahme auslöst
Dies bedeutet, dass Spring Boot aus der Eigenschaft spring.datasource.url den Treiber ableitet und gleichzeitig durch Festlegen des dataSourceClassName diese Ausnahme erstellt wird. Um es richtig zu machen, sollten Ihre application.properties für die HikariCP-Datenquelle ungefähr so aussehen:
# hikariCP spring.jpa.databasePlatform=org.hibernate.dialect.MySQLDialect spring.datasource.url=jdbc:mysql://localhost:3306/exampledb spring.datasource.username=root spring.datasource.password= spring.datasource.poolName=SpringBootHikariCP spring.datasource.maximumPoolSize=5 spring.datasource.minimumIdle=3 spring.datasource.maxLifetime=2000000 spring.datasource.connectionTimeout=30000 spring.datasource.idleTimeout=30000 spring.datasource.pool-prepared-statements=true spring.datasource.max-open-prepared-statements=250
Hinweis: Bitte überprüfen Sie, ob in Ihrem Klassenpfad Tomcat-jdbc.jar oder commons-dbcp.jar vorhanden ist, die meistens durch transitive Abhängigkeit hinzugefügt werden. Wenn diese im Klassenpfad vorhanden sind, konfiguriert Spring Boot die Datenquelle mithilfe des Standardverbindungspools Tomcat. HikariCP wird nur zum Erstellen der Datenquelle verwendet, wenn sich kein anderer Anbieter im Klassenpfad befindet. Es gibt eine Fallback-Sequenz von Tomcat -> zu HikariCP -> zu Commons DBCP.
quelle
Dies hilft jedem, der Hikaricp für seine Anwendung mit Spring Auto Configuration konfigurieren möchte. Für mein Projekt verwende ich Spring Boot 2 mit Hikaricp als JDBC-Verbindungspool und MySQL als Datenbank. Eine Sache, die ich in anderen Antworten nicht gesehen habe, war die
data-source-properties
, mit der verschiedene Eigenschaften festgelegt werden können, die imspring.datasource.hikari.*
Pfad nicht verfügbar sind . Dies entspricht der Verwendung derHikariConfig
Klasse. Um die Datenquelle und den Hikaricp-Verbindungspool für MySQL-spezifische Eigenschaften zu konfigurieren, habe ich die Annotation zur automatischen Konfiguration von spring und die folgenden Eigenschaften in der Datei application.yml verwendet.Platzieren Sie es
@EnableAutoConfiguration
in einer Ihrer Konfigurations-Bean-Dateien.application.yml Datei kann folgendermaßen aussehen.
spring: datasource: url: 'jdbc:mysql://127.0.0.1:3306/DATABASE?autoReconnect=true&useSSL=false' username: user_name password: password hikari: maximum-pool-size: 20 data-source-properties: cachePrepStmts: true prepStmtCacheSize: 250 prepStmtCacheSqlLimit: 2048 useServerPrepStmts: true useLocalSessionState: true rewriteBatchedStatements: true cacheResultSetMetadata: true cacheServerConfiguration: true elideSetAutoCommits: true maintainTimeStats: false
quelle
Hier sind die guten Nachrichten. HikariCP ist jetzt mit Spring Boot 2.0.0 der Standardverbindungspool.
Versionshinweise zu Spring Boot 2.0.0
quelle
Es stellt sich also heraus, dass fast alle Standardeinstellungen für HikariCP für mich funktionieren, mit Ausnahme der Anzahl der DB-Verbindungen. Ich habe diese Eigenschaft in meiner application.properties festgelegt:
spring.datasource.maximumPoolSize=20
Und Andy Wilkinson hat Recht, soweit ich das beurteilen kann, dass Sie den Konfigurationsansatz dataSourceClassName für HikariCP mit Spring Boot nicht verwenden können.
quelle
spring.datasource.maximum-pool-size
wenn Sie Spring-Konfigurationseigenschaften verwenden. AndernfallsmaximumPoolSize
wird der HikariCP-Parametername verwendet.Mein SetUp:
Spring Boot v1.5.10
Hikari v.3.2.x (zur Auswertung)
Um die Konfiguration der Hikari-Datenquelle wirklich zu verstehen, empfehle ich, die automatische Konfiguration für die Datenquelle von Spring Boot zu deaktivieren.
Fügen Sie application.properties Folgendes hinzu:
Dadurch wird die Fähigkeit von Spring Boot deaktiviert, die DataSource selbst zu konfigurieren.
Jetzt haben Sie die Möglichkeit, Ihre eigene benutzerdefinierte Konfiguration zu definieren, um eine HikariDataSource-Bean zu erstellen und diese mit den gewünschten Eigenschaften zu füllen.
Du musst
Zusammenfassung der Spring Boot-basierten Hikari DataSource-Eigenschaften: -
quelle
Mit den späteren Spring-Boot-Releases kann der Wechsel zu Hikari vollständig in der Konfiguration erfolgen. Ich benutze
1.5.6.RELEASE
und dieser Ansatz funktioniert.build.gradle:
compile "com.zaxxer:HikariCP:2.7.3"
Anwendung YAML
spring: datasource: type: com.zaxxer.hikari.HikariDataSource hikari: idleTimeout: 60000 minimumIdle: 2 maximumPoolSize: 20 connectionTimeout: 30000 poolName: MyPoolName connectionTestQuery: SELECT 1
Passen Sie es
connectionTestQuery
an Ihre zugrunde liegende Datenbank an. Das war's, kein Code erforderlich.quelle
Der folgende Code kann für eine statische Datenquelleninitialisierung verwendet werden.
public class MyDataSource { private static final String DB_USERNAME="spring.datasource.username"; private static final String DB_PASSWORD="spring.datasource.password"; private static final String DB_URL ="spring.datasource.url"; private static final String DB_DRIVER_CLASS="spring.datasource.driver-class-name"; private static Properties properties = null; private static HikariDataSource dataSource; static { try { properties = new Properties(); properties.load(new FileInputStream("src/main/resources/application.properties")); dataSource = new HikariDataSource(); dataSource.setDriverClassName(properties.getProperty(DB_DRIVER_CLASS)); dataSource.setJdbcUrl(properties.getProperty(DB_URL)); dataSource.setUsername(properties.getProperty(DB_USERNAME)); dataSource.setPassword(properties.getProperty(DB_PASSWORD)); dataSource.setMinimumIdle(100); dataSource.setMaximumPoolSize(2000); dataSource.setAutoCommit(false); dataSource.setLoginTimeout(3); } catch (IOException | SQLException e) { ((Throwable) e).printStackTrace(); } } public static DataSource getDataSource(){ return dataSource; } public static Connection getConnection() throws SQLException{ return getDataSource().getConnection(); } }
quelle
Ich hatte Probleme und das Problem war ein Leerzeichen am Ende von
spring.datasource.type = com.zaxxer.hikari.HikariDataSource
quelle