#1 Fixing Hikari configurations
This commit is contained in:
@@ -3,21 +3,11 @@ package com.ehsaniara.multidatasource;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
@SpringBootApplication
|
||||
public class DemoApplication {
|
||||
|
||||
public final static String MODEL_PACKAGE = "com.ehsaniara.multidatasource.model";
|
||||
|
||||
public final static Properties JPA_PROPERTIES = new Properties() {{
|
||||
put("hibernate.dialect", "org.hibernate.dialect.PostgreSQL10Dialect");
|
||||
put("hibernate.hbm2ddl.auto", "update");
|
||||
put("hibernate.ddl-auto", "update");
|
||||
put("show-sql", "true");
|
||||
}};
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(DemoApplication.class, args);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.ehsaniara.multidatasource.configurations;
|
||||
|
||||
import com.zaxxer.hikari.HikariConfig;
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import org.hibernate.jpa.HibernatePersistenceProvider;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
@@ -14,7 +13,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
|
||||
import static com.ehsaniara.multidatasource.DemoApplication.JPA_PROPERTIES;
|
||||
import static com.ehsaniara.multidatasource.DemoApplication.MODEL_PACKAGE;
|
||||
|
||||
/**
|
||||
@@ -28,10 +26,11 @@ import static com.ehsaniara.multidatasource.DemoApplication.MODEL_PACKAGE;
|
||||
transactionManagerRef = "transactionManagerRead",
|
||||
basePackages = {"com.ehsaniara.multidatasource.repository.readRepository"}
|
||||
)
|
||||
public class DataSourceConfigRead extends HikariConfig {
|
||||
|
||||
public final static String PERSISTENCE_UNIT_NAME = "read";
|
||||
public class DataSourceConfigRead extends HikariConfigRead {
|
||||
|
||||
public DataSourceConfigRead(HikariReadProperties hikariReadProperties) {
|
||||
super(hikariReadProperties);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public HikariDataSource dataSourceRead() {
|
||||
@@ -47,7 +46,7 @@ public class DataSourceConfigRead extends HikariConfig {
|
||||
setPersistenceProviderClass(HibernatePersistenceProvider.class);
|
||||
setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
|
||||
setPackagesToScan(MODEL_PACKAGE);
|
||||
setJpaProperties(JPA_PROPERTIES);
|
||||
setJpaProperties(JPA_READ_PROPERTIES);
|
||||
}};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.ehsaniara.multidatasource.configurations;
|
||||
|
||||
import com.zaxxer.hikari.HikariConfig;
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import org.hibernate.jpa.HibernatePersistenceProvider;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
@@ -14,7 +13,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
|
||||
import static com.ehsaniara.multidatasource.DemoApplication.JPA_PROPERTIES;
|
||||
import static com.ehsaniara.multidatasource.DemoApplication.MODEL_PACKAGE;
|
||||
|
||||
/**
|
||||
@@ -28,9 +26,11 @@ import static com.ehsaniara.multidatasource.DemoApplication.MODEL_PACKAGE;
|
||||
transactionManagerRef = "transactionManagerWrite",
|
||||
basePackages = {"com.ehsaniara.multidatasource.repository.writeRepository"}
|
||||
)
|
||||
public class DataSourceConfigWrite extends HikariConfig {
|
||||
public class DataSourceConfigWrite extends HikariConfigWrite {
|
||||
|
||||
public final static String PERSISTENCE_UNIT_NAME = "write";
|
||||
public DataSourceConfigWrite(HikariWriteProperties hikariWriteProperties) {
|
||||
super(hikariWriteProperties);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public HikariDataSource dataSourceWrite() {
|
||||
@@ -46,7 +46,7 @@ public class DataSourceConfigWrite extends HikariConfig {
|
||||
setPersistenceProviderClass(HibernatePersistenceProvider.class);
|
||||
setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
|
||||
setPackagesToScan(MODEL_PACKAGE);
|
||||
setJpaProperties(JPA_PROPERTIES);
|
||||
setJpaProperties(JPA_WRITE_PROPERTIES);
|
||||
}};
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.ehsaniara.multidatasource.configurations;
|
||||
|
||||
import com.zaxxer.hikari.HikariConfig;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
public class HikariConfigRead extends HikariConfig {
|
||||
|
||||
protected final HikariReadProperties hikariReadProperties;
|
||||
|
||||
protected final String PERSISTENCE_UNIT_NAME = "read";
|
||||
|
||||
protected final Properties JPA_READ_PROPERTIES = new Properties() {{
|
||||
put("hibernate.dialect", "org.hibernate.dialect.PostgreSQL10Dialect");
|
||||
put("hibernate.hbm2ddl.auto", "update");
|
||||
put("hibernate.ddl-auto", "update");
|
||||
put("show-sql", "true");
|
||||
}};
|
||||
|
||||
protected HikariConfigRead(HikariReadProperties hikariReadProperties) {
|
||||
this.hikariReadProperties = hikariReadProperties;
|
||||
setPoolName(this.hikariReadProperties.getPoolName());
|
||||
setMinimumIdle(this.hikariReadProperties.getMinimumIdle());
|
||||
setMaximumPoolSize(this.hikariReadProperties.getMaximumPoolSize());
|
||||
setIdleTimeout(this.hikariReadProperties.getIdleTimeout());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.ehsaniara.multidatasource.configurations;
|
||||
|
||||
import com.zaxxer.hikari.HikariConfig;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
public class HikariConfigWrite extends HikariConfig {
|
||||
|
||||
protected final HikariWriteProperties hikariWriteProperties;
|
||||
|
||||
protected final String PERSISTENCE_UNIT_NAME = "write";
|
||||
|
||||
protected final Properties JPA_WRITE_PROPERTIES = new Properties() {{
|
||||
put("hibernate.dialect", "org.hibernate.dialect.PostgreSQL10Dialect");
|
||||
put("hibernate.hbm2ddl.auto", "update");
|
||||
put("hibernate.ddl-auto", "update");
|
||||
put("show-sql", "true");
|
||||
}};
|
||||
|
||||
protected HikariConfigWrite(HikariWriteProperties hikariWriteProperties) {
|
||||
this.hikariWriteProperties = hikariWriteProperties;
|
||||
setPoolName(this.hikariWriteProperties.getPoolName());
|
||||
setMinimumIdle(this.hikariWriteProperties.getMinimumIdle());
|
||||
setMaximumPoolSize(this.hikariWriteProperties.getMaximumPoolSize());
|
||||
setIdleTimeout(this.hikariWriteProperties.getIdleTimeout());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.ehsaniara.multidatasource.configurations;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
|
||||
@Setter
|
||||
@Getter
|
||||
@Configuration
|
||||
@PropertySource("classpath:application.yml")
|
||||
@ConfigurationProperties("spring.datasource-read.hikari")
|
||||
public class HikariReadProperties {
|
||||
|
||||
private String poolName;
|
||||
|
||||
private int minimumIdle;
|
||||
|
||||
private int maximumPoolSize;
|
||||
|
||||
private int idleTimeout;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.ehsaniara.multidatasource.configurations;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
|
||||
@Setter
|
||||
@Getter
|
||||
@Configuration
|
||||
@PropertySource("classpath:application.yml")
|
||||
@ConfigurationProperties("spring.datasource-write.hikari")
|
||||
public class HikariWriteProperties {
|
||||
|
||||
private String poolName;
|
||||
|
||||
private int minimumIdle;
|
||||
|
||||
private int maximumPoolSize;
|
||||
|
||||
private int idleTimeout;
|
||||
}
|
||||
Reference in New Issue
Block a user