#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.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
public class DemoApplication {
|
public class DemoApplication {
|
||||||
|
|
||||||
public final static String MODEL_PACKAGE = "com.ehsaniara.multidatasource.model";
|
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) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(DemoApplication.class, args);
|
SpringApplication.run(DemoApplication.class, args);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.ehsaniara.multidatasource.configurations;
|
package com.ehsaniara.multidatasource.configurations;
|
||||||
|
|
||||||
import com.zaxxer.hikari.HikariConfig;
|
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
import org.hibernate.jpa.HibernatePersistenceProvider;
|
import org.hibernate.jpa.HibernatePersistenceProvider;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
@@ -14,7 +13,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|||||||
|
|
||||||
import javax.persistence.EntityManagerFactory;
|
import javax.persistence.EntityManagerFactory;
|
||||||
|
|
||||||
import static com.ehsaniara.multidatasource.DemoApplication.JPA_PROPERTIES;
|
|
||||||
import static com.ehsaniara.multidatasource.DemoApplication.MODEL_PACKAGE;
|
import static com.ehsaniara.multidatasource.DemoApplication.MODEL_PACKAGE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -28,10 +26,11 @@ import static com.ehsaniara.multidatasource.DemoApplication.MODEL_PACKAGE;
|
|||||||
transactionManagerRef = "transactionManagerRead",
|
transactionManagerRef = "transactionManagerRead",
|
||||||
basePackages = {"com.ehsaniara.multidatasource.repository.readRepository"}
|
basePackages = {"com.ehsaniara.multidatasource.repository.readRepository"}
|
||||||
)
|
)
|
||||||
public class DataSourceConfigRead extends HikariConfig {
|
public class DataSourceConfigRead extends HikariConfigRead {
|
||||||
|
|
||||||
public final static String PERSISTENCE_UNIT_NAME = "read";
|
|
||||||
|
|
||||||
|
public DataSourceConfigRead(HikariReadProperties hikariReadProperties) {
|
||||||
|
super(hikariReadProperties);
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public HikariDataSource dataSourceRead() {
|
public HikariDataSource dataSourceRead() {
|
||||||
@@ -47,7 +46,7 @@ public class DataSourceConfigRead extends HikariConfig {
|
|||||||
setPersistenceProviderClass(HibernatePersistenceProvider.class);
|
setPersistenceProviderClass(HibernatePersistenceProvider.class);
|
||||||
setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
|
setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
|
||||||
setPackagesToScan(MODEL_PACKAGE);
|
setPackagesToScan(MODEL_PACKAGE);
|
||||||
setJpaProperties(JPA_PROPERTIES);
|
setJpaProperties(JPA_READ_PROPERTIES);
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.ehsaniara.multidatasource.configurations;
|
package com.ehsaniara.multidatasource.configurations;
|
||||||
|
|
||||||
import com.zaxxer.hikari.HikariConfig;
|
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
import org.hibernate.jpa.HibernatePersistenceProvider;
|
import org.hibernate.jpa.HibernatePersistenceProvider;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
@@ -14,7 +13,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|||||||
|
|
||||||
import javax.persistence.EntityManagerFactory;
|
import javax.persistence.EntityManagerFactory;
|
||||||
|
|
||||||
import static com.ehsaniara.multidatasource.DemoApplication.JPA_PROPERTIES;
|
|
||||||
import static com.ehsaniara.multidatasource.DemoApplication.MODEL_PACKAGE;
|
import static com.ehsaniara.multidatasource.DemoApplication.MODEL_PACKAGE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -28,9 +26,11 @@ import static com.ehsaniara.multidatasource.DemoApplication.MODEL_PACKAGE;
|
|||||||
transactionManagerRef = "transactionManagerWrite",
|
transactionManagerRef = "transactionManagerWrite",
|
||||||
basePackages = {"com.ehsaniara.multidatasource.repository.writeRepository"}
|
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
|
@Bean
|
||||||
public HikariDataSource dataSourceWrite() {
|
public HikariDataSource dataSourceWrite() {
|
||||||
@@ -46,7 +46,7 @@ public class DataSourceConfigWrite extends HikariConfig {
|
|||||||
setPersistenceProviderClass(HibernatePersistenceProvider.class);
|
setPersistenceProviderClass(HibernatePersistenceProvider.class);
|
||||||
setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
|
setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
|
||||||
setPackagesToScan(MODEL_PACKAGE);
|
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