JPAEntityManager如何在Spring Boot应用程序中选择连接池?

时间:2019-02-26 16:48:42

标签: java spring spring-boot jpa spring-data-jpa

我有2个 DAO - first 与@Bean DataSource 一起使用+ JDBC 配置 如下:

@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 并使用spring初始化 beans 时,我使用 second 数据库 获取一些信息。

在这种情况下,我正在使用 second DAO -> entityManager

我希望 entityManager 使用来自 application.properties 配置
确实, entityManager 使用来自bean DataSource 的bean的配置

它如何工作?
application.properties中的 p.s。 数据库属性看起来像使用过的。

实际上,我认为我应该为我的应用程序使用一个 ConnectionPool
我可以将 DataSource 配置为@Bean,并提供 entityManager jdbcTemplate
我应该选择其他解决方案吗?还是这个想法很合适?

1 个答案:

答案 0 :(得分:2)

是因为重要性。 @Configuration的优先级高于application.properties。第一次spring-boot搜索@Bean定义,如果找不到,则检查application.properties。通常,这些定义是等效的。