আমি কীভাবে আমার অ্যাপ্লিকেশন.প্রপার্টি ফাইলগুলিতে আমার স্প্রিং বুট অ্যাপে হিকারিসিপি কনফিগার করব?


92

আমি আমার স্প্রিং বুট (1.2.0.M1) অ্যাপ্লিকেশনটিতে হিকারিসিপি সেটআপ করার চেষ্টা করছি যাতে টমক্যাট ডিবিসিপির জায়গায় এটি ব্যবহার করে পরীক্ষা করতে পারি। আমি আমার অ্যাপ্লিকেশনটিতে সংযোগ পুলটি কনফিগার করতে চাই p প্রপার্টি ফাইলে যেমন টমকেটের সাথে আমি করছিলাম, তবে কীভাবে করা উচিত তা আমি বুঝতে পারি না। আমি যে সমস্ত উদাহরণ পেয়েছি সেগুলি জাভা কনফিগ শৈলীটি দেখায় বা একটি পৃথক হিকারিসিপি বৈশিষ্ট্য ফাইল ব্যবহার করে। সম্পত্তির নামটি এপ্লিকেশন.প্রেটিটিতে কনফিগার করতে কেউ আমাকে সহায়তা করতে পারে? আমি ড্রাইভারাস্লাসনাম ব্যবহারটি ডেটাসোর্সক্লাসনাম পদ্ধতির ব্যবহার থেকে স্যুইচ করতে চাই, কারণ এটি পরিষ্কার দেখায় এবং প্রস্তাবিত হয়। এটি কি আমার অ্যাপ্লিকেশন.প্রপার্টি ফাইলগুলিতে সম্ভব?

টমকেট ডিবিসিপি-র জন্য আমার যা ছিল তা এখানে (কেবলমাত্র কয়েকটি বেসিক কনফিগারেশন, সম্পূর্ণরূপে সজ্জিত নয়)

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

এবং আমি বর্তমানে সংযোগ স্থাপনের জন্য ড্রাইভারক্লাসনাম এবং জেডিবিসি ইউআরএল ব্যবহার করছি:

spring.datasource.url=jdbc:mysql://localhost:3306/myDb
spring.datasource.driverClassName=com.mysql.jdbc.Driver

আপনি স্প্রিং বুটের কোন সংস্করণ ব্যবহার করছেন?
জিওএন্ড

1.2.0.M1 আমি মনে করি আমি কীভাবে হিকারিসিপি-র জন্য সর্বোচ্চপুলসাইজের মতো জিনিসগুলি সেট করতে বৈশিষ্ট্যগুলি সেট করতে হবে তা নির্ধারণ করেছি। তবে আমি ড্রাইভারস্ল্যাসনাম এবং জেডিবিসি ইউআরএলের পরিবর্তে ডাটাসোর্সক্লাসনাম এবং সার্ভারনাম ব্যবহার করে হিকারিসিপি প্রস্তাবিত পদ্ধতি ব্যবহার করে কনফিগারেশনটি কাজ করতে অক্ষম। সুতরাং আমি যে অংশ ছেড়ে দিয়েছি। কেউ যদি সেই অংশটি
কেভিন এম

আমি 1.2.0.M1 পরে চেষ্টা করে দেব, এবং আমি পোস্ট করব এমন কিছু খুঁজে পেয়েছি
geoand

4
স্প্রিং বুটের একটি ডাটাসোর্সের স্বতঃ-কনফিগারেশন সহ আপনি ডেটাসোর্সক্লাসনাম পদ্ধতিটি ব্যবহার করতে পারবেন না কারণ এটি প্রয়োজন যে স্প্রিং.ড্যাটাসসোর্স.আরএল সেট করা আছে। নোট করুন যে আপনাকে ড্রাইভারক্লাসনাম নির্দিষ্ট করার দরকার নেই কারণ বুট এটি jdbcUll থেকে নির্ধারণ করবে।
অ্যান্ডি উইলকিনসন

4
application.properties :,spring.datasource.hikari.* ডকুমেন্টেশন: github.com/brettwooldridge/HikariCP
কিনজেলম

উত্তর:


142
@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

আপডেট! সংস্করণ থেকে স্প্রিং বুট 1.3.0 :

  1. নির্ভরতাগুলিতে কেবল হিকারিসিপি যুক্ত করুন
  2. প্রয়োগ করুন। জিএমএল

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

আপডেট! সংস্করণ থেকে স্প্রিং বুট 2.0.0 :

ডিফল্ট সংযোগ পুলটি টমক্যাট থেকে হিকারিতে পরিবর্তিত হয়েছে :)


4
আমি মনে করি এটি একটি আরও ভাল, আরও বহনযোগ্য পন্থা। চিয়ার্স!
জেসেস জাজুটিয়া

4
এটি স্ট্যান্ডার্ড স্প্রিং কনফিগারেশনের জন্যও ব্যবহার করা যেতে পারে তবে একটির ধারণা গুরুত্বপূর্ণ। হিকারি jdbcUrl এর মাধ্যমে ডেটাসোর্সের ইউআরএল ব্যবহার করেছে তবে ইউআরএল মাধ্যমে বসন্ত। {ব্যক্তিগত স্ট্রিং ইউআরএল; @ বিয়ান পাবলিক ডেটা সোর্স ডেটা সোর্স () এসকিউএলএক্সেপশন নিক্ষেপ করে new নতুন হিকারিডাটাসোর্স (এটি) ফিরিয়ে দেয়; } পাবলিক স্ট্রিং getUrl () {রিটার্ন url; } সর্বজনীন শূন্য সেটআপ (স্ট্রিং ইউআরএল) {this.url = url; // হিকারি কনফিগ জেডিবিসিউআরএল সম্পত্তিতে জেডিবিসি-ইউআরএল ধরে রাখে, তবে বসন্ত এই সম্পত্তিটি ইউআরএল হিসাবে সরবরাহ করে thissetJdbcUrl (url); }}
টমাস হনুস

দুঃখিত এটি কিছুটা দেরি করে দেওয়া জবাব, তবে @ সের্গেজির সমাধানটি সমস্ত সম্পত্তি পাওয়ার জন্য সামান্য পরিবর্তন করা উচিত। হিকারি সুনির্দিষ্ট ডিএস বৈশিষ্ট্য পেতে আপনাকে "বসন্ত.ডাটাসোর্স। ডেটাসোর্স প্রোপার্টি" পরিবর্তে "স্প্রিং.ড্যাটাসসোর্স.হিকারী"
ব্লুবেল

4
এর আগে, আমাদের কেবল এটি দেখার দরকার ছিল যে এটি ডেটাসোর্সের ডকুমেন্টেশনগুলি দেখে কনফিগার করা হয়েছে, এখন এটি আরও খারাপ হয়ে গেছে, স্প্রিং বুট ব্যবহার করার সময় এটি কীভাবে কনফিগার করা হয়েছে তাও আমাদের এখন জানতে হবে। আমি দেখতে পাচ্ছি না যে এই স্বয়ংচালিত কনফিগারেশনটি সত্যই আমাদের সহায়তা করছে।
সুপারটোনস্কি

31

আমি পেরিয়ে এসেছি HikariCPএবং আমি মাপদণ্ড দেখে বিস্মিত হয়েছি এবং আমি আমার ডিফল্ট পছন্দের পরিবর্তে এটি চেষ্টা করতে চেয়েছিলাম C3P0এবং অবাক হয়ে আমি configurationsডান পেতে লড়াই করেছিলাম কারণ সম্ভবত আপনি কী টেক স্ট্যাক ব্যবহার করছেন তা কী কনফিগারেশনের উপর ভিত্তি করে কনফিগারেশনগুলিতে আলাদা।

সংযোগ পুলিংয়ের সাথে ডেটাবেস হিসাবে ব্যবহার করার জন্য আমার কাছে স্টার্টার্স ( স্প্রিং ইনিশিয়ালাইজার ব্যবহার করে ) সেটআপ Spring Bootপ্রকল্প রয়েছে । আমি বিল্ড টুল হিসাবে ব্যবহার করেছি এবং নিম্নলিখিত অনুমানের জন্য আমার জন্য কী কাজ করেছে তা আমি ভাগ করে নিতে চাই:JPA, Web, SecurityPostgreSQLHikariCP
Gradle

  1. স্প্রিং বুট স্টার্টার জেপিএ (ওয়েব এবং সুরক্ষা - alচ্ছিক)
  2. গ্রেডল বিল্ডও
  3. PostgreSQL চলমান এবং একটি ডাটাবেস (যেমন স্কিমা, ব্যবহারকারী, ডিবি) সহ সেটআপ

আপনি maven ব্যবহার করছেন যদি আপনি build.gradleব্যবহার করছেন Gradleবা সমতুল্য আপনার নিম্নলিখিতটি প্রয়োজনpom.xml

buildscript {
    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'
    }
}

উপরের অংশে বাদে একটি গুচ্ছ রয়েছে build.gradleএবং সে কারণেই

  1. প্রথমে বাদ দিন, নির্ভরতা jdbc-tomcatডাউনলোড করার সময় সংযোগ পুলকে বাদ দেয় এমন গ্রেডকে নির্দেশ দেয় spring-boot-starter-data-jpa। এটি সেটআপ spring.datasource.type=com.zaxxer.hikari.HikariDataSourceকরেও অর্জন করা যেতে পারে তবে, আমার প্রয়োজন না হলে আমি অতিরিক্ত নির্ভরতা চাই না depend
  2. দ্বিতীয় বর্জন, নির্ভরতা hibernate-coreডাউনলোড করার সময় গ্রেডকে বাদ দেওয়ার নির্দেশ দেয় com.zaxxerএবং এটি কারণ hibernate-coreইতিমধ্যে ডাউনলোড করা হয়েছে Spring Bootএবং আমরা বিভিন্ন সংস্করণ দিয়ে শেষ করতে চাই না।
  3. তৃতীয়টি বাদ দেওয়া, মডিউলটি hibernate-coreডাউনলোড করার সময় গ্রেডকে বাদ দেওয়ার নির্দেশ দেয় hibernate-hikaricpযা হিকারিসিপি হ্রাসের org.hibernate.hikaricp.internal.HikariCPConnectionProviderপরিবর্তে সংযোগ প্রদানকারী হিসাবে ব্যবহার করার জন্য প্রয়োজনীয়com.zaxxer.hikari.hibernate.HikariConnectionProvider

একবার আমি build.gradleকী কী রাখব এবং কী রাখব না তা সন্ধান করার পরে আমি datasourceআমার মধ্যে একটি কনফিগারেশন কপি / পেস্ট করতে প্রস্তুত ছিলাম application.propertiesএবং উড়ন্ত রঙের সাথে কাজ করার জন্য সমস্ত কিছু প্রত্যাশা করেছিলাম তবে সত্যই নয় এবং আমি নিম্নলিখিত বিষয়গুলিতে হোঁচট খেয়েছি

  • স্প্রিং বুট ডাটাবেস বিশদ (যেমন ইউআরএল, ড্রাইভার) সন্ধান করতে ব্যর্থ, সুতরাং জেপিএ এবং হাইবারনেট সেটআপ করতে সক্ষম হয়নি (কারণ আমি সম্পত্তি কী মানগুলির সঠিক নাম রাখিনি)
  • হিকারিসিপি পিছনে পড়ছে com.zaxxer.hikari.hibernate.HikariConnectionProvider
  • হাইবারনেট / জেপি-কে স্বয়ংক্রিয়ভাবে কনফিগার করার জন্য বসন্তকে নতুন সংযোগ-সরবরাহকারী ব্যবহার করার নির্দেশ দেওয়ার পরে হিকারিসিপি ব্যর্থ হয়েছিল কারণ এটি এর key/valueমধ্যে কিছু সন্ধান করছে application.propertiesএবং অভিযোগ করছে dataSource, dataSourceClassName, jdbcUrl। আমাকে ডিবাগ করতে হয়েছিল HikariConfig, HikariConfigurationUtil, HikariCPConnectionProviderএবং খুঁজে পেয়েছি যা HikariCPথেকে বৈশিষ্ট্যগুলি খুঁজে পেতে পারেনি application.propertiesকারণ এটির নাম আলাদা আলাদা ছিল।

যাইহোক, এখানেই আমাকে ট্রায়াল এবং ত্রুটির উপর নির্ভর করতে হয়েছিল এবং নিশ্চিত HikariCPকরতে হয়েছিল যে সেই বৈশিষ্ট্যগুলি (যেমন ডেবি উত্স যা ডিবি বিবরণ, পাশাপাশি পুলিংয়ের বৈশিষ্ট্যগুলি) বেছে নিতে সক্ষম হয়েছে পাশাপাশি স্পাইিং বুট যেমন প্রত্যাশার সাথে আচরণ করে এবং আমি শেষ করেছি নিম্নলিখিত application.propertiesফাইল।

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 

উপরে উল্লিখিত নামকরণের ধরণগুলির উপর ভিত্তি করে কনফিগারেশনগুলিকে বিভাগগুলিতে বিভক্ত করা হয়েছে

  • বসন্ত.ডাটাসোর্স.এক্স (স্প্রিং অটো- কনফিগারগুলি এগুলি বেছে নেবে, তাই হিকারিসিপি হবে)
  • বসন্ত.ডাটাসোর্স.হিকারী.এক্স (হিকারিসিপি পুলটি সেটআপ করতে, উটকেস ক্ষেত্রের নামগুলির একটি নোট তৈরি করুন)
  • স্প্রিং.জপা.হিবারনেট.কোনিশন.প্রভাইডার_ক্লাস (নতুন হাইবারনেট সংযোগপ্রবাহ ব্যবহারের জন্য বসন্তকে নির্দেশ দেয়)
  • বসন্ত. jpa.properties.hibernate.x ( জেপিএকে স্বতঃ-কনফিগার করতে স্প্রিং দ্বারা ব্যবহৃত হয়, আন্ডারস্কোর সহ ফিল্ডের নামগুলি নোট করুন)

কোনও টিউটোরিয়াল বা পোস্ট বা এমন কিছু উত্স পাওয়া সম্ভব যা উপরের বৈশিষ্ট্য ফাইলটি কীভাবে ব্যবহার করা হয় এবং কীভাবে বৈশিষ্ট্যগুলির নামকরণ করা উচিত তা দেখায়। ঠিক আছে, আপনার এটি আছে।

উপরে নিক্ষেপ application.propertiesসঙ্গে build.gradle(বা অনুরূপ অন্তত) একটি স্প্রিং বুট JPA প্রকল্পের সংস্করণ (1.5.8) মধ্যে একটি যাদুমন্ত্র মত কাজ এবং আপনার প্রি-কনফিগার ডাটাবেসের সাথে সংযোগ করা উচিত (যেমন আমার ক্ষেত্রে এটা পোস্টগ্রি যে উভয় HikariCP & Springথেকে জিনিসটা spring.datasource.urlযার উপর ডাটাবেস ড্রাইভার ব্যবহার করতে হবে)।

আমি DataSourceশিম তৈরির প্রয়োজন দেখিনি এবং এটি কারণ স্প্রিং বুট কেবল অনুসন্ধান করে আমার পক্ষে সবকিছু করতে সক্ষম application.propertiesএবং এটি পরিষ্কার।

নিবন্ধ HikariCP এর GitHub মধ্যে উইকি কিভাবে JPA সঙ্গে সেটআপ স্প্রিং বুট কিন্তু, শো ব্যাখ্যা ও বিবরণ অভাব আছে।

উপরোক্ত দুটি ফাইল পাবলিক গিস্ট https://gist.github.com/r ਸ਼ਰਮy/b3cb936061cc03acdfe21358b86a5bc6 হিসাবেও উপলব্ধ


আপনি পোস্ট করার আগে আমি এই অধিকারের সাথে লড়াই করে যাচ্ছিলাম। ধন্যবাদ!
বোগদান পুস্কা

খুশি এটা আপনাকে সাহায্য! 👍
রাফ

রাফ আপনার কাছে দুর্দান্ত উত্তর রয়েছে। আমি কৌতূহলী ছিলাম যদি আপনার স্প্রিং বুট ২.০.০.M6 এর জন্য প্রয়োজনীয় পরিবর্তনগুলি পোস্ট করা সম্ভব হয়। কনফিগারেশনটি বাছাই করা না নিয়ে লড়াই করা এবং মাইগ্রেশন গাইড এখনও আপডেট হয়নি
ম্যাথু ফন্টানা

আরে মাদুর, আমি আমার সমাধানটি এখানে ভাগ করে নেওয়ার সময় 1.5.8 রিলিজ ব্যবহার করছিলাম। আমি 2.0.0.M6 কে দ্রুত চেষ্টা করতে চেয়েছিলাম তবে দুর্ভাগ্যক্রমে তাদের আপনার গ্রেডের উচ্চতর সংস্করণ থাকা দরকার। ২.০.০-তে আমি কেবলমাত্র পরিবর্তনটি মনে করতে পারি। এম 6 বসন্ত জেপির জন্য হিকারিসিপি ডিফল্ট সংযোগ পুলিং তৈরি করবে এখানে দেখুন github.com/spring-projects/spring-boot/commit/… হিকারিসিফিগ, হিকারি কনফিগারেশন ইউটিলি, হিকারিসিপি সংযোগপ্রবণতা ডিবাগ করার চেষ্টা করুন সম্পত্তি বাছাই করা হয়।
রাফ

26

আপনি কেবল অ্যাপ্লিকেশন.আইএমএল / অ্যাপ্লিকেশন.প্রার্টি ব্যবহার করতে পারেন। স্পষ্টভাবে কোনও DataSourceবিন তৈরি করার দরকার নেই

Ydemartino দ্বারা উল্লিখিত আপনাকে টমকাট-জেডিবিসি বাদ দিতে হবে

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
        </exclusion>
    </exclusions>
</dependency>

যেহেতু আপনি DataSourceশিম তৈরি করবেন না , আপনাকে অ্যাপ্লিকেশনের spring.datasource.typeমান সহ জিকির সাহায্যে স্পষ্টভাবে নির্দিষ্ট করতে হবে ym জিম com.zaxxer.hikari.HikariDataSource/ অ্যাপ্লিকেশন p

spring:
    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

আপনার অ্যাপ্লিকেশন.আইএমএল / অ্যাপ্লিকেশন.প্রোপার্টিগুলিতে আপনি হিকারি নির্দিষ্ট পরামিতি যেমন পুলের আকার ইত্যাদি কনফিগার করতে পারেন spring.datasource.hikari.*


এই কাজটি করার জন্য আপনার টমক্যাটটি বাদ দেওয়ার দরকার নেই, যোগ spring.datasource.typeকরা যথেষ্ট।
মাইকেল পিফেল

4
পছন্দ করুন এর জবাডোক DataSourceBuilderবলেছেন: টমক্যাট, হিকারিসিপি বা কমন্স ডিবিসিপি ক্লাসপথে থাকলে তাদের মধ্যে একজনকে বেছে নেওয়া হবে (টমকেটের সাথে প্রথমে সেই ক্রমে)। আমার পরীক্ষা এটি নিশ্চিত করে।
জান বোদনার

4
@ জনবদনার: DataSourceConfigurationযা অটো-কনফিগারেশনে ব্যবহৃত হয়, spring.datasource.typeসেটি একেবারেই সেট করা আছে কিনা তার উপর নির্ভর করে কনফিগারেশন রয়েছে । সুতরাং, আমি tomcat-jdbcআমার ক্লাসপথে রয়েছি এবং এখনও আমার পুল হিসাবে হিকারিসিপি ব্যবহার করি। আমার পরীক্ষা এটি নিশ্চিত করে। সম্ভবত আমরা এখানে খুব আলাদা স্প্রিং বুট সংস্করণ সম্পর্কে কথা বলছি।
মাইকেল পিফেল

4
@ মিশেলপিফেল মজার বিষয় হল, আমি কেবল ডেটাসোর্সবিল্ডার ক্রিয়েট () ... টাইপ (com.zaxxer.hikari.HikariDataSource.class) ব্যবহার করে জাভা কনফিগারেশন ছাড়াই এটিকে ঠিকঠাকভাবে পরিচালনা করতে পেরেছি। ইয়ামল ফাইলে কনফিগারেশন সহ, এটি আমার পক্ষে কার্যকর হয়নি। সুতরাং কিছু ধরা আছে।
জান বোদনার

14

আমি স্প্রিং বুট ২.০.৪ ব্যবহার করছি RE হিকারি ডিফল্ট সংযোগ পুল এবং .hikariআর প্রয়োজন হয় না।

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

এবং configurationপ্রসারিত করার দরকার নেই HikariConfigএবং DataSourceBuilderএটি আগের মতো ব্যবহার করা যেতে পারে।

@Configuration
public class DataSourceConfiguration {

    @Bean(name="myDataSource")
    @ConfigurationProperties("spring.datasource")
    public DataSource myDataSource() {
        return DataSourceBuilder.create().build();
    }
}

10

ডকুমেন্টেশন অনুসারে এটি পরিবর্তন করা হয়েছে,

https://docs.spring.io/spring-boot/docs/current/references/html/boot-features-sql.html

উদাহরণ:

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

এই হিকারি সম্পর্কে আমরা নিম্নলিখিত কনফিগারেশন পরিবর্তনগুলি করতে পারি, দয়া করে আপনার প্রয়োজন অনুযায়ী যোগ / আপডেট করুন।

autoCommit
connectionTimeout
idleTimeout
maxLifetime
connectionTestQuery
connectionInitSql
validationTimeout
maximumPoolSize
poolName
allowPoolSuspension
readOnly
transactionIsolation
leakDetectionThreshold

9

ভেরিয়েবলগুলিতে সম্পত্তি মান রাখার জন্য আপনাকে রিডানড্যান্ট কোডের দরকার নেই। আপনি সরাসরি একটি সম্পত্তি ফাইলের সাথে সম্পত্তি সেট করতে পারেন।

ক্লাসপথে hikari.propertiesফাইল রাখুন ।

driverClassName=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/myDb
connectionTestQuery=SELECT 1
maximumPoolSize=20
username=...
password=...

এবং এটির মতো একটি ডেটাসোর্স বিন তৈরি করুন।

@Bean(destroyMethod = "close")
public DataSource dataSource() throws SQLException {
    HikariConfig config = new HikariConfig("/hikari.properties");
    HikariDataSource dataSource = new HikariDataSource(config);

    return dataSource;
}

8

এটি আমার বুট অ্যাপ্লিকেশনটির জন্য কাজ করে যদি এটি সহায়তা করে। এই শ্রেণিটি আপনাকে জানায় যে কনফিগার অবজেক্টটি কী বৈশিষ্ট্যের সন্ধান করছে:

https://github.com/brettwooldridge/HikariCP/blob/2.3.x/hikaricp-common/src/main/java/com/zaxxer/hikari/AbstractHikariConfig.java

আমি মনে করি datasource_whateverউত্স কনফিগ ফাইলে সম্পত্তি কীগুলিতে যুক্ত করে একাধিক ডাটাসোর্স সমর্থন করতে পারে । চিয়ার্স!

@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
   }
}

এইটা. যদিও এটি জাভাতে সহজেই অনুবাদযোগ্য।
জেসেস জাজুটিয়া

হ্যাঁ আমি এখন বুঝতে পারি যে আমার এটি করা দরকার কারণ এখন আমি মেট্রিকগুলি কনফিগার করতে চাই। এবং আমি এটি করতে দেখতে পাবার একমাত্র উপায় হ'ল এই জাভা কনফিগের সাথে অটোকনফিগারেশন ওভাররাইড করা। ধন্যবাদ
কেভিন এম

হ্যাঁ, এটি সাহায্য করে! আপনি আমার opvote পেয়েছেন ... এটা কি গ্রোভি? এটি খুব আকর্ষণীয়, এটি জাভাস্ক্রিপ্টের মতো :-)
জোআও পোলো

8

আপনি ডেটাসোর্সক্লাসনাম পদ্ধতির ব্যবহার করতে পারেন, এখানে মাইএসকিউএল সহ একটি উদাহরণ রয়েছে। (বসন্ত বুট 1.3 এবং 1.4 সঙ্গে পরীক্ষিত)

প্রথমে আপনাকে ক্লাসপথ থেকে টমক্যাট-জেডিবিসি বাদ দিতে হবে কারণ এটি হিকারিকের পক্ষে হবে।

pom.xML

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-jdbc</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

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

তারপরে শুধু যুক্ত করুন

@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
    return DataSourceBuilder.create().build();
}

আমি এখানে একটি পরীক্ষার প্রকল্প তৈরি করেছি: https://github.com/ydemartino/spring-boot-hikaricp


8

@ অ্যান্ডি উইলকিনসন বলেছিলেন আপনি অ্যাপ্লিকেশন.প্রপার্টি কনফিগারেশনে ডেটাসোর্সক্লাসনাম পদ্ধতির ব্যবহার করতে পারবেন না। যদি আপনি যাইহোক ডাটাসোর্সক্লাসনাম রাখতে চান তবে আপনি জাভা কনফিগারেশন হিসাবে এটি ব্যবহার করতে পারেন:

@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;
   }
  } 

আপনি ডাটাসোর্সক্লাসনাম ব্যবহার করতে পারবেন না কারণ এটি নিক্ষেপ করবে এবং ব্যতিক্রম হবে

Caused by: java.lang.IllegalStateException: both driverClassName and dataSourceClassName are specified, one or the other should be used.

যার অর্থ বসন্ত.ডাটাসোর্স.আরএল ড্রাইভারটি এবং একই সাথে ডেটাসোর্সক্ল্যাশনেম সেট করা থেকে স্প্রিং বুট ইনফার্সগুলি এই ব্যতিক্রম তৈরি করে। এটি ঠিক করার জন্য আপনার অ্যাপ্লিকেশন rop প্রপার্টি হিকারিসিপি ডেটাসোর্সের জন্য এমন কিছু দেখতে পাওয়া উচিত:

# 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

দ্রষ্টব্য: আপনার শ্রেণিপথে কোনও টমক্যাট-জেডিবিসি.জার বা কমন্স-ডিবিসিপি.জার আছে কিনা তা পরীক্ষা করে দেখুন বেশিরভাগ সময় ট্রানজিটিভ নির্ভরতার সাথে যুক্ত হয়েছে। এগুলি ক্লাসপথে উপস্থিত থাকলে স্প্রিং বুট ডেটাসোর্সটি ডিফল্ট সংযোগ পুল যা টমক্যাট ব্যবহার করে তা কনফিগার করবে। ক্লাসপথে অন্য কোনও সরবরাহকারীর উপস্থিতি না থাকলে কেবলমাত্র হিকারিসিপি ডেটাসোর্স তৈরি করতে ব্যবহৃত হবে। টমক্যাট -> হিকারিসিপি -> থেকে কমন্স ডিবিসিপিতে ফ্যালব্যাক সিকোয়েন্স রয়েছে।


4
এটি অত্যন্ত সহায়ক ছিল, যদিও আমাকে ডেটা উত্স প্রপসগুলি কনফিগার করার জন্য স্ট্রিংটাইপের মতো এখানে উল্লিখিত কিছু সম্পত্তির নাম বের করতে হয়েছিল।
কমিভেন্টর

এটা সাহায্য করে জেনে রাখা ভাল।
শহীদ ইউসুফ

8

এটি স্প্রিং অটো কনফিগারেশনের সাহায্যে যারা হিকারিকপ কনফিগার করতে চায় তাদের সহায়তা করবে। আমার প্রকল্পের জন্য, আমি জেডিবিসি সংযোগ পুল হিসাবে হিকারিকপি এবং ডেটাবেস হিসাবে মাইএসকিএল সহ স্প্রিং বুট 2 ব্যবহার করছি। একটি জিনিস যা আমি অন্যান্য উত্তরে দেখিনি তা হ'ল data-source-propertiesযা বিভিন্ন ধরণের বৈশিষ্ট্য সেট করতে ব্যবহার করা যেতে পারে যা spring.datasource.hikari.*পথে পাওয়া যায় না । এটি HikariConfigক্লাসটি ব্যবহারের সমতুল্য । মাইএসকিএল নির্দিষ্ট বৈশিষ্ট্যগুলির জন্য ডেটাসোর্স এবং হিকারিকপ সংযোগ পুলটি কনফিগার করতে আমি স্প্রিং অটো কনফিগার টিকা এবং অ্যাপ্লিকেশন.আইএমএল ফাইলে নিম্নলিখিত বৈশিষ্ট্যগুলি ব্যবহার করেছি।

@EnableAutoConfigurationআপনার কনফিগারেশন বিন ফাইলগুলির একটিতে রাখুন ।

এপ্লিকেশন.আইএমএল ফাইল দেখতে এটি দেখতে পারে।

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

এই উত্তরটি ডেটা-উত্স-বৈশিষ্ট্য সহ কার্যকারী উদাহরণ দেওয়ার জন্য মূল্যবান!
মাউরো মলিনারি

6

এখানে ভাল খবর। হিকারিসিপি হ'ল স্প্রিং বুট 2.0.0 এর সাথে এখন ডিফল্ট সংযোগ পুল।

স্প্রিং বুট 2.0.0 রিলিজ নোট

স্প্রিং বুট ২.০ এ ডিফল্ট ডাটাবেস পুলিং প্রযুক্তি টমক্যাট পুল থেকে হিকারিসিপিতে স্যুইচ করা হয়েছে। আমরা খুঁজে পেয়েছি যে হাকারি উচ্চতর পারফরম্যান্স সরবরাহ করে এবং আমাদের অনেক ব্যবহারকারী এটি টমক্যাট পুলের চেয়ে পছন্দ করেন।


5

সুতরাং দেখা যাচ্ছে যে হিকারিসিপি-র জন্য প্রায় সব ডিফল্ট সেটিংসই আমার জন্য ডিবি সংযোগের সংখ্যা বাদে কাজ করে। আমি আমার অ্যাপ্লিকেশনটিতে সম্পত্তি সেট করেছি set

spring.datasource.maximumPoolSize=20

অ্যান্ডি উইলকিনসন যতদূর আমি সঠিকভাবে বলতে পারি যে আপনি স্প্রিং বুট সহ হিকারিসিপির জন্য ডেটাসোর্সক্লাসনাম কনফিগারেশন পদ্ধতির ব্যবহার করতে পারবেন না।


4
আমি বিভিন্ন অ্যাপ্লিকেশনগুলিতে কিছু সময়ের জন্য হিকারিসিপি ব্যবহার করেছি এবং এখনও পর্যন্ত কোনও সমস্যা হয়নি any আমি হিকারি কনফিগ পদ্ধতিটি ব্যবহার করছি, যেখানে আপনার কোনও বৈশিষ্ট্য ফাইলে আপনার সমস্ত কনফিগারেশন রয়েছে। স্প্রিংবুট এবং স্প্রিংকোরের পাশাপাশি প্রত্যাশার সাথে কাজ করে। আমি সর্বোচ্চপুলসাইজটিও কনফিগার করছি।
ডেভি আলভেস

spring.datasource.maximum-pool-sizeআপনি যখন বসন্তের কনফিগারেশন বৈশিষ্ট্যগুলি ব্যবহার করেন এটি হওয়া উচিত , অন্যথায় maximumPoolSizeহিকারিসিপি প্যারামিটারের নাম।
সুরা 2 কে

3

আমার সেটআপ:
স্প্রিং বুট v1.5.10
হিকারি v.3.2.x (মূল্যায়নের জন্য)

হিকারি ডেটা সোর্সের কনফিগারেশনটি সত্যিই বুঝতে, আমি ডেটা উত্সের জন্য স্প্রিং বুটের অটো-কনফিগারেশনটি অক্ষম করার পরামর্শ দিই।

অ্যাপ্লিকেশন.প্রেটিসগুলিতে নিম্নলিখিতগুলি যুক্ত করুন:

স্প্রিং.আটোকনফিগুরে.এক্সক্লুড = org.springframework.boot.autoconfigure.jdbc. ডাটাসোর্সআউটকোফাইগ্রেশন

এটি স্প্রিং বুটের ডেটাসোর্সটি নিজস্ব কনফিগার করার ক্ষমতা অক্ষম করবে।

হিকারিডাটাসোর্স সিম তৈরি করতে এবং পছন্দসই বৈশিষ্ট্যগুলি সহ এটি তৈরি করার জন্য আপনার নিজের কাস্টম কনফিগারেশনটি সংজ্ঞায়িত করার সুযোগ এখন।

দ্রষ্টব্য :::
পাবলিক ক্লাস হিকারিডাটা সোর্স হিকারি কনফিগ বাড়িয়েছে

তোমার দরকার

  1. পছন্দসই হিকারি বৈশিষ্ট্য ব্যবহার করে হিকারি কনফিগ অবজেক্টকে পপুলেট করুন
  2. নির্মাণকারীর আর্গুমেন্ট হিসাবে পাস করা হিকারি কনফিগ অবজেক্টের সাহায্যে হিকারিডাটা সোর্স অবজেক্টটি সূচনা করুন।

আমি নিজেই ডেটা উত্স তৈরি করতে আমার নিজস্ব কাস্টম কনফিগারেশন ক্লাস (@ কনফিগারেশন ) সংজ্ঞায়িত করতে বিশ্বাস করি এবং এটি পৃথক ফাইলে সংজ্ঞায়িত ডেটা উত্স বৈশিষ্ট্যগুলির সাথে পপুলেটেড (প্রথাগত: অ্যাপ্লিকেশন.প্রপ্রেটিস)

এই পদ্ধতিতে আমি নিজের নিজস্ব সংজ্ঞা দিতে পারি হাইবারনেট ব্যবহার করে সেশনফ্যাক্টরি বিন প্রস্তাবিত: "লোকালসেশনফ্যাক্টরিবিয়ান" শ্রেণিটি এবং এটি আপনার হিকারি ডেটা উত্স> এবং অন্যান্য হিবিরেতে-জেপিএ ভিত্তিক বৈশিষ্ট্য দ্বারা সজ্জিত করুন।

স্প্রিং বুট ভিত্তিক হিকারি ডাটাসোর্স বৈশিষ্ট্যগুলির সংক্ষিপ্তসার: -

বসন্ত.ডাটাসোর্স.হিকারী.নিল-পুল-সাসপেনশন = সত্য
বসন্ত.ডাটাসোর্স.হিকারি.আটো-কমিট = ভুয়া
বসন্ত.ডাটাসোর্স.হিকারি.এইচএলজি =
বসন্ত.ডাটসোর্স.হিকারি.কনেকশন-আরআই-
এসকিএল = বসন্ত.ডাটাসোর্স.হিকারী। সংযোগ-পরীক্ষা-
প্রশ্নোত্তর = বসন্ত.ডাটাসোর্স.হিকারি.কনেকশন-টাইমআউট = 100
বসন্ত.ডাটাসোর্স.হিকারী.ডাটা-উত্স-শ্রেণি-নাম =
বসন্ত.ডাটাসোর্স.হিকারী.ডাটা-উত্স-জেন্ডি =
বসন্ত.ডাটাসোর্স.হিকারী.ড্রাইভার -ক্লাস-নাম =
বসন্ত.ডাটসোর্স.হিকারি.আইডিলে-টাইমআউট = 50
বসন্ত.ডাটসোর্স.হিকারি.ইনিটাইজেশন-ফেইল-ফাস্ট = সত্য
বসন্ত.ডাটাসোর্স.হিকারী.আইসোলেট-অভ্যন্তরীণ-প্রশ্নগুলি = সত্য
বসন্ত.ডাটসোর্স.হিকার.জডিবিসি- url =
বসন্ত.ডাটসোর্স.হিকারি.লিক-সনাক্তকরণ-থ্রেশহোল্ড =
বসন্ত.ডাটাসোর্স.হিকারী.লগিন-টাইমআউট = 60
বসন্ত.ডাটাসোর্স.হিকারি.ম্যাক্স-আজীবন =
বসন্ত.ডাটাসোর্স.হিকারি.ম্যাক্সিমাম-পুল-আকার = 500
বসন্ত.ডাটাসোর্স.হিকারী.মিনিমম-অলস = 30
বসন্ত.ডাটাসোর্স.হিকারী .পাসওয়ার্ড =
বসন্ত.ডাটাসোর্স.হিকারি.পুল-নাম =
বসন্ত.ডাটাসোর্স.হিকারি.প্রাচীন = সত্য
বসন্ত.ডাটাসোর্স.হিকারি.গ্রিস্টার-এমবিয়ানস = সত্য
বসন্ত.ডাটাসোর্স.হিকারী.ট্রেজিশন-বিচ্ছিন্নতা =
বসন্ত.ডাটাসোর্স.হিকারী .username =
বসন্ত.ডাটাসোর্স.হিকারী। বৈধকরণ-সময়সীমা =


বসন্ত.ডাটসোর্স.হিকারী.ম্যাক্সিমাম-পুল-আকার = 500 সত্যিই ভয়াবহ এবং এটি হিকারি
Mertaxu

মানগুলি সহ এটি একটি নমুনা কনফিগারেশন ছিল :)
ফিলিপ দিলিপ

2

পরবর্তীকালে বসন্ত-বুট প্রকাশের সাথে হিকারিতে স্যুইচিং পুরোপুরি কনফিগারেশনে করা যায়। আমি ব্যবহার করছি 1.5.6.RELEASEএবং এই পদ্ধতির কাজ করে।

build.gradle:

compile "com.zaxxer:HikariCP:2.7.3"

অ্যাপ্লিকেশন YAML

spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      idleTimeout: 60000
      minimumIdle: 2
      maximumPoolSize: 20
      connectionTimeout: 30000
      poolName: MyPoolName
      connectionTestQuery: SELECT 1

connectionTestQueryআপনার অন্তর্নিহিত ডিবি অনুসারে পরিবর্তন করুন । এটাই, কোনও কোডের দরকার নেই।


2

স্থিতিশীল ডাটাসোর্স আরম্ভের জন্য নীচের কোডটি ব্যবহার করা যেতে পারে।

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();
    }
}

1

আমি সমস্যার মুখোমুখি হয়েছিলাম এবং সমস্যাটি শেষে ছিল একটি সাদা জায়গাspring.datasource.type = com.zaxxer.hikari.HikariDataSource

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.