Как JPA entityManager выбирает пул соединений в Spring Boot Application? - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть 2 DAO - first работает с @Bean DataSource + * JDBC 1013 *. Конфигурация имеет следующий вид:

@Bean("dataSource")
    @Singleton
    public DataSource getDataSource() {
        BasicDataSource basicDataSource = new BasicDataSource();
        basicDataSource.setDriverClassName("...");
        basicDataSource.setUrl("...");
        basicDataSource.setUsername(...);
        basicDataSource.setPassword(...);
        ...
        return basicDataSource;
    }

секунда работает с entityManager . application.properties конфигурация выглядит следующим образом:

spring.datasource.url=...
spring.datasource.username=...
spring.datasource.password=...
...

Когда я запускаю Spring Boot Application и пружинуинициализирует мои bean , я использую second DAO, чтобы получить некоторую информацию из базы данных .

Я использую секунду DAO -> entityManager в этом случае.

Я ожидаю, что entityManager использует конфигурацию из application.properties .
Действительно, entityManager использует конфиграция из боба источник данных .

Как это работает?
ps свойства базы данных в application.properties выглядят как использованные.

На самом деле я считаю, что мне следует использовать один ConnectionPool для моего приложения.
Я могу настроить DataSource как @Bean и предоставьте entityManager и jdbcTemplate с ним.
Стоит ли выбирать другое решение?Или эта идея вполне подходит?

1 Ответ

0 голосов
/ 27 февраля 2019

Это из-за важности.@Configuration имеет более высокий приоритет, чем application.properties.Сначала весенняя загрузка ищет определение @Bean, если оно не найдено, то проверяет application.properties.Как правило, эти определения эквивалентны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...