Как получить доступ к двум серверам SQl в Springboot - PullRequest
0 голосов
/ 12 сентября 2018

есть приложение, которое запускает Spring MVC.

Мне нужно, чтобы оно получило доступ к 2 различным базам данных в моем приложении (два сервера Sql).

Как мне это настроить?

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете получить доступ к первой базе данных с помощью EntityManager и использовать JdbcTemplate для доступа ко второй базе данных

1.application.properties

#SQL Server 1
spring.datasource.url = [url]
spring.datasource.username = [username]
spring.datasource.password = [password]
spring.datasource.driverClassName = [sql Server Driver class name]

#SQl Server 2
spring.secondaryDatasource.url = [url]
spring.secondaryDatasource.username = [username]
spring.secondaryDatasource.password = [password]
spring.secondaryDatasource.driverClassName = [sql Server Driver class name]

2.Создать класс @Configuration и объявить дваbean-источник данных. Создайте шаблон Jbc для использования для доступа к серверу sql. 2

@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource primaryDataSource() {
    return DataSourceBuilder.create().build();
}

@Bean
@ConfigurationProperties(prefix="spring.secondaryDatasource")
public DataSource secondaryDataSource() {
    return DataSourceBuilder.create().build();
}


@Bean
public JdbcTemplate jdbcTemplate() {
    return new JdbcTemplate(secondaryDataSource());
}

Пример использования

@Repository
public class CustomerRepositoryImpl implements CustomerRepository {


    private final JdbcTemplate jdbcTemplate;

    public CustomerRepositoryImpl(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

}

Вы также можете посмотреть документацию: https://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#howto-use-two-entity-managers

и этот сайт https://www.baeldung.com/spring-data-jpa-multiple-databases

...