diff --git a/src/main/java/ru/nbch/credit_tracker/config/datasource/DatabaseConfig.java b/src/main/java/ru/nbch/credit_tracker/config/datasource/DatabaseConfig.java new file mode 100644 index 0000000..dafc1a7 --- /dev/null +++ b/src/main/java/ru/nbch/credit_tracker/config/datasource/DatabaseConfig.java @@ -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(); + } + +} diff --git a/src/main/java/ru/nbch/credit_tracker/config/datasource/IndicDataSourceConfig.java b/src/main/java/ru/nbch/credit_tracker/config/datasource/IndicDataSourceConfig.java index 52910ba..e83429b 100644 --- a/src/main/java/ru/nbch/credit_tracker/config/datasource/IndicDataSourceConfig.java +++ b/src/main/java/ru/nbch/credit_tracker/config/datasource/IndicDataSourceConfig.java @@ -1,13 +1,11 @@ package ru.nbch.credit_tracker.config.datasource; -import com.zaxxer.hikari.HikariDataSource; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; @@ -23,19 +21,14 @@ import java.sql.SQLException; basePackages = "ru.nbch.credit_tracker.mapper.indic", sqlSessionFactoryRef = "sqlSessionIndic" ) -public class IndicDataSourceConfig { +public class IndicDataSourceConfig extends DatabaseConfig { @Value("classpath:mybatis/mapper/indic/*.xml") private Resource[] resources; @Bean(name = "indicDataSource") public DataSource dataSource(CreditTrackerSettings config) throws SQLException { - DataSourceBuilder dataSourceBuilder = (DataSourceBuilder) DataSourceBuilder.create(); - dataSourceBuilder.driverClassName(config.getIndicDataSourceSettings().driver()); - dataSourceBuilder.url(config.getIndicDataSourceSettings().url()); - dataSourceBuilder.username(config.getIndicDataSourceSettings().username()); - dataSourceBuilder.password(config.getIndicDataSourceSettings().password()); - HikariDataSource dataSource = dataSourceBuilder.build(); + DataSource dataSource = createDataSource(config.getIndicDataSourceSettings()); try (Connection connection = dataSource.getConnection()) { connection.isValid(3); } catch (SQLException e) { diff --git a/src/main/java/ru/nbch/credit_tracker/config/datasource/ScoringDataSourceConfig.java b/src/main/java/ru/nbch/credit_tracker/config/datasource/ScoringDataSourceConfig.java index 4b01732..8d9bbde 100644 --- a/src/main/java/ru/nbch/credit_tracker/config/datasource/ScoringDataSourceConfig.java +++ b/src/main/java/ru/nbch/credit_tracker/config/datasource/ScoringDataSourceConfig.java @@ -1,13 +1,11 @@ package ru.nbch.credit_tracker.config.datasource; -import com.zaxxer.hikari.HikariDataSource; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; @@ -16,25 +14,21 @@ import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; + @Slf4j @Configuration @MapperScan( basePackages = "ru.nbch.credit_tracker.mapper.scoring", sqlSessionFactoryRef = "sqlSessionScoring" ) -public class ScoringDataSourceConfig { +public class ScoringDataSourceConfig extends DatabaseConfig { @Value("classpath:mybatis/mapper/scoring/*.xml") private Resource[] resources; @Bean(name = "scoringDataSource") public DataSource dataSource(CreditTrackerSettings config) throws SQLException { - DataSourceBuilder dataSourceBuilder = (DataSourceBuilder) DataSourceBuilder.create(); - dataSourceBuilder.driverClassName(config.getScoringDataSourceSettings().driver()); - dataSourceBuilder.url(config.getScoringDataSourceSettings().url()); - dataSourceBuilder.username(config.getScoringDataSourceSettings().username()); - dataSourceBuilder.password(config.getScoringDataSourceSettings().password()); - HikariDataSource dataSource = dataSourceBuilder.build(); + DataSource dataSource = createDataSource(config.getScoringDataSourceSettings()); try (Connection connection = dataSource.getConnection()) { connection.isValid(3); } catch (SQLException e) { diff --git a/src/main/java/ru/nbch/credit_tracker/config/datasource/SignalDataSourceConfig.java b/src/main/java/ru/nbch/credit_tracker/config/datasource/SignalDataSourceConfig.java index e05025a..c2e94c3 100644 --- a/src/main/java/ru/nbch/credit_tracker/config/datasource/SignalDataSourceConfig.java +++ b/src/main/java/ru/nbch/credit_tracker/config/datasource/SignalDataSourceConfig.java @@ -1,13 +1,11 @@ package ru.nbch.credit_tracker.config.datasource; -import com.zaxxer.hikari.HikariDataSource; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; @@ -23,18 +21,13 @@ import java.sql.SQLException; basePackages = "ru.nbch.credit_tracker.mapper.signal", sqlSessionFactoryRef = "sqlSessionSignal" ) -public class SignalDataSourceConfig { +public class SignalDataSourceConfig extends DatabaseConfig { @Value("classpath:mybatis/mapper/signal/*.xml") private Resource[] resources; @Bean(name = "signalDataSource") public DataSource dataSource(CreditTrackerSettings config) throws SQLException { - DataSourceBuilder dataSourceBuilder = (DataSourceBuilder) DataSourceBuilder.create(); - 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(); + DataSource dataSource = createDataSource(config.getSignalDataSourceSettings()); try (Connection connection = dataSource.getConnection()) { connection.isValid(3); } catch (SQLException e) {