Refactored datasource configs
This commit is contained in:
parent
f9f026d815
commit
c77e22e641
4 changed files with 26 additions and 27 deletions
|
|
@ -0,0 +1,19 @@
|
||||||
|
package ru.nbch.credit_tracker.config.datasource;
|
||||||
|
|
||||||
|
import org.springframework.boot.jdbc.DataSourceBuilder;
|
||||||
|
import ru.nbch.credit_tracker.config.settings.DataSourceSettings;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
public class DatabaseConfig {
|
||||||
|
|
||||||
|
protected DataSource createDataSource(DataSourceSettings settings) {
|
||||||
|
return DataSourceBuilder.create()
|
||||||
|
.driverClassName(settings.driver())
|
||||||
|
.url(settings.url())
|
||||||
|
.username(settings.username())
|
||||||
|
.password(settings.password())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
package ru.nbch.credit_tracker.config.datasource;
|
package ru.nbch.credit_tracker.config.datasource;
|
||||||
|
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
import org.mybatis.spring.SqlSessionFactoryBean;
|
import org.mybatis.spring.SqlSessionFactoryBean;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.jdbc.DataSourceBuilder;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.io.Resource;
|
import org.springframework.core.io.Resource;
|
||||||
|
|
@ -23,19 +21,14 @@ import java.sql.SQLException;
|
||||||
basePackages = "ru.nbch.credit_tracker.mapper.indic",
|
basePackages = "ru.nbch.credit_tracker.mapper.indic",
|
||||||
sqlSessionFactoryRef = "sqlSessionIndic"
|
sqlSessionFactoryRef = "sqlSessionIndic"
|
||||||
)
|
)
|
||||||
public class IndicDataSourceConfig {
|
public class IndicDataSourceConfig extends DatabaseConfig {
|
||||||
|
|
||||||
@Value("classpath:mybatis/mapper/indic/*.xml")
|
@Value("classpath:mybatis/mapper/indic/*.xml")
|
||||||
private Resource[] resources;
|
private Resource[] resources;
|
||||||
|
|
||||||
@Bean(name = "indicDataSource")
|
@Bean(name = "indicDataSource")
|
||||||
public DataSource dataSource(CreditTrackerSettings config) throws SQLException {
|
public DataSource dataSource(CreditTrackerSettings config) throws SQLException {
|
||||||
DataSourceBuilder<HikariDataSource> dataSourceBuilder = (DataSourceBuilder<HikariDataSource>) DataSourceBuilder.create();
|
DataSource dataSource = createDataSource(config.getIndicDataSourceSettings());
|
||||||
dataSourceBuilder.driverClassName(config.getIndicDataSourceSettings().driver());
|
|
||||||
dataSourceBuilder.url(config.getIndicDataSourceSettings().url());
|
|
||||||
dataSourceBuilder.username(config.getIndicDataSourceSettings().username());
|
|
||||||
dataSourceBuilder.password(config.getIndicDataSourceSettings().password());
|
|
||||||
HikariDataSource dataSource = dataSourceBuilder.build();
|
|
||||||
try (Connection connection = dataSource.getConnection()) {
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
connection.isValid(3);
|
connection.isValid(3);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
package ru.nbch.credit_tracker.config.datasource;
|
package ru.nbch.credit_tracker.config.datasource;
|
||||||
|
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
import org.mybatis.spring.SqlSessionFactoryBean;
|
import org.mybatis.spring.SqlSessionFactoryBean;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.jdbc.DataSourceBuilder;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.io.Resource;
|
import org.springframework.core.io.Resource;
|
||||||
|
|
@ -16,25 +14,21 @@ import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Configuration
|
@Configuration
|
||||||
@MapperScan(
|
@MapperScan(
|
||||||
basePackages = "ru.nbch.credit_tracker.mapper.scoring",
|
basePackages = "ru.nbch.credit_tracker.mapper.scoring",
|
||||||
sqlSessionFactoryRef = "sqlSessionScoring"
|
sqlSessionFactoryRef = "sqlSessionScoring"
|
||||||
)
|
)
|
||||||
public class ScoringDataSourceConfig {
|
public class ScoringDataSourceConfig extends DatabaseConfig {
|
||||||
|
|
||||||
@Value("classpath:mybatis/mapper/scoring/*.xml")
|
@Value("classpath:mybatis/mapper/scoring/*.xml")
|
||||||
private Resource[] resources;
|
private Resource[] resources;
|
||||||
|
|
||||||
@Bean(name = "scoringDataSource")
|
@Bean(name = "scoringDataSource")
|
||||||
public DataSource dataSource(CreditTrackerSettings config) throws SQLException {
|
public DataSource dataSource(CreditTrackerSettings config) throws SQLException {
|
||||||
DataSourceBuilder<HikariDataSource> dataSourceBuilder = (DataSourceBuilder<HikariDataSource>) DataSourceBuilder.create();
|
DataSource dataSource = createDataSource(config.getScoringDataSourceSettings());
|
||||||
dataSourceBuilder.driverClassName(config.getScoringDataSourceSettings().driver());
|
|
||||||
dataSourceBuilder.url(config.getScoringDataSourceSettings().url());
|
|
||||||
dataSourceBuilder.username(config.getScoringDataSourceSettings().username());
|
|
||||||
dataSourceBuilder.password(config.getScoringDataSourceSettings().password());
|
|
||||||
HikariDataSource dataSource = dataSourceBuilder.build();
|
|
||||||
try (Connection connection = dataSource.getConnection()) {
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
connection.isValid(3);
|
connection.isValid(3);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
package ru.nbch.credit_tracker.config.datasource;
|
package ru.nbch.credit_tracker.config.datasource;
|
||||||
|
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
import org.mybatis.spring.SqlSessionFactoryBean;
|
import org.mybatis.spring.SqlSessionFactoryBean;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.jdbc.DataSourceBuilder;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.io.Resource;
|
import org.springframework.core.io.Resource;
|
||||||
|
|
@ -23,18 +21,13 @@ import java.sql.SQLException;
|
||||||
basePackages = "ru.nbch.credit_tracker.mapper.signal",
|
basePackages = "ru.nbch.credit_tracker.mapper.signal",
|
||||||
sqlSessionFactoryRef = "sqlSessionSignal"
|
sqlSessionFactoryRef = "sqlSessionSignal"
|
||||||
)
|
)
|
||||||
public class SignalDataSourceConfig {
|
public class SignalDataSourceConfig extends DatabaseConfig {
|
||||||
@Value("classpath:mybatis/mapper/signal/*.xml")
|
@Value("classpath:mybatis/mapper/signal/*.xml")
|
||||||
private Resource[] resources;
|
private Resource[] resources;
|
||||||
|
|
||||||
@Bean(name = "signalDataSource")
|
@Bean(name = "signalDataSource")
|
||||||
public DataSource dataSource(CreditTrackerSettings config) throws SQLException {
|
public DataSource dataSource(CreditTrackerSettings config) throws SQLException {
|
||||||
DataSourceBuilder<HikariDataSource> dataSourceBuilder = (DataSourceBuilder<HikariDataSource>) DataSourceBuilder.create();
|
DataSource dataSource = createDataSource(config.getSignalDataSourceSettings());
|
||||||
dataSourceBuilder.driverClassName(config.getSignalDataSourceSettings().driver());
|
|
||||||
dataSourceBuilder.url(config.getSignalDataSourceSettings().url());
|
|
||||||
dataSourceBuilder.username(config.getSignalDataSourceSettings().username());
|
|
||||||
// dataSourceBuilder.password(config.getSignalDataSourceSettings().password()); TODO uncomment whe password will be set
|
|
||||||
HikariDataSource dataSource = dataSourceBuilder.build();
|
|
||||||
try (Connection connection = dataSource.getConnection()) {
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
connection.isValid(3);
|
connection.isValid(3);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue