Spring启动,如何组织多个配置文件特定的数据源

时间:2016-12-30 16:23:02

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

我缺乏可靠的模式和参考,如何在Spring Boot中组织特定于配置文件的安全性和持久性配置,其中多个配置文件特定的 DataSources 可能共存于不同的上下文。

我们说我有三个maven配置文件: dev qa prod ,每个配置文件定义数据库的不同属性连接,JPA配置,日志记录等。

使用 dev 构建,Spring应该针对内存映射对用户进行身份验证,该映射在启动时填充。使用 AuthenticationManagerBuilder 接口很容易实现。

但是,使用 qa prod 构建时,应该针对数据库对用户进行身份验证。现在,Spring应该使用特定于配置文件的连接参数配置 DataSource ,并在 UserDetailsS​​ervice 中使用此特定的 DataSource ,检索身份验证机制的凭据。我知道如何创建必要的bean,但问题在于:

一个重要的事实是,用户 DataSource 与实际的业务实体DataSource不同。如何在安全性中定义特定于配置文件的 DataSource 配置,并将此特定 DataSource 的范围与安全配置联系起来,使用户DAO( Spring Data JPA存储库或注入 EntityManager )使用这个 DataSource ?这个名为 Persistence unit 的概念是否会发挥作用?

此外,在基类中配置 HttpSecurity 是一个好主意,并从此类扩展特定于配置文件的配置,其中使用了 AuthenticationManagerBuilder 是否定义了DataSource bean?

另一个问题是,如何根据maven配置文件启用Spring配置文件?我认为使用两者的共同点是一个坏主意,因为变量的maven配置文件激活是一对一的,而 spring.profiles.active 可以列出多个配置文件。首先混合maven配置文件和Spring配置文件是一个好主意,还是有更好的方法来组织事物?

我知道这是一个广泛的问题,但这是一个我需要掌握的广泛主题。是否有一些针对这些问题的好例子?

0 个答案:

没有答案