Настройка 2 источника данных в Spring Test с использованием Hikari и Postgres - PullRequest
0 голосов
/ 18 января 2019

В настоящее время я работаю над модулем источника данных, который будет использоваться в приложении с загрузочной пружиной. Мне нужно создать 2 источника данных, используя postgresql и hikari.

Я пытался следовать руководству https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-two-datasources, но я все еще получаю исключение

JUNIT Класс

@RunWith(SpringRunner.class)
@ContextConfiguration(classes = AppDataSourceConfig.class)
public class PropertyDaoImplTest extends AppBaseDAO implements PropertyDAOTest {

    private static final Logger LOGGER = LogManager.getLogger(PropertyDaoImplTest.class);

    @Test
    public void allPropertiesTest() {
        LOGGER.debug("Getting all properties for test!");
        assertTrue(true);

        List<PropertyEntityTest> items = this.primaryWriteTemplate.query(QUERY_ALL_ACTIVE_PROPERTIES, new PropertyMapper());
        assertNotNull(items);


    }
}
@Configuration
public class AppDataSourceConfig extends HikariConfig {

    private final static Logger LOGGER = LogManager.getLogger(AppDataSourceConfig.class);

    @Bean(name = "dataSourceWriteProperties")
    @Primary
    @ConfigurationProperties(prefix = "primary.write.ds")
    public DataSourceProperties writeDataSourceProperties() {
        return new DataSourceProperties();
    }

    @Bean(name = "primaryWriteDataSource")
    @ConfigurationProperties(prefix = "primary.write.ds.config")
    @Primary
    public HikariDataSource primaryWriteDataSource(){
        LOGGER.debug("Creating primary write datasource for R3App!");
        return writeDataSourceProperties().initializeDataSourceBuilder().type(HikariDataSource.class).build();
    }

application.properties

primary.write.ds.jdbc-url=jdbc:postgresql://localhost:5432/propAppdb
primary.write.ds.username=
primary.write.ds.password=
primary.write.ds.config.pool-name=primaryWrite
primary.write.ds.config.maximum-pool-size=50

Вызвано: org.springframework.beans.BeanInstantiationException: Не удалось создать экземпляр [com.zaxxer.hikari.HikariDataSource]: метод фабрики «primaryWriteDataSource» вызвал исключение; вложенным исключением является org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException: Не удалось определить подходящий класс драйвера в org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:185) ~ [spring-beans-5.1.3.RELEASE.jar: 5.1.3.RELEASE] в org.springframework.beans.factory.support.ConstructorResolver.instantiate (ConstructorResolver.java:622) ~ [spring-beans-5.1.3.RELEASE.jar: 5.1.3.RELEASE] ... 66 общих кадров опущено Вызывается: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException: не удалось определить подходящий класс драйвера в org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName (DataSourceProperties.java:236) ~ [spring-boot-autoconfigure-2.1.1.RELEASE.jar: 2.1.1.RELEASE] в org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder (DataSourceProperties.java:176) ~ [spring-boot-autoconfigure-2.1.1.RELEASE.jar: 2.1.1.RELEASE]

...