Spring Boot:如何使用多个模式并动态选择在运行时使用哪个模式

时间:2017-02-11 18:13:17

标签: mysql database jpa spring-boot

我有同样的问题,但我想知道答案。 Spring Boot: How to use multiple schemas and dynamically choose which one to use for every request at runtime

请帮助我找到答案

如何建立一个数据库连接并为每个请求指定不同的架构?

提前谢谢。

1 个答案:

答案 0 :(得分:13)

定义多个数据源是否有效,并根据您的请求更改为具有正确架构的数据源?

spring.datasource.url = jdbc:oracle:thin:@//maui:1521/xe
spring.datasource.username = schema1
spring.datasource.password = ...

spring.datasource2.url = jdbc:oracle:thin:@//maui:1521/xe
spring.datasource2.username = schema2
spring.datasource2.password = ..

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

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

否则你需要杀死&重新创建连接以继续使用单一数据源,但这对于您的应用程序来说确实很慢,因为它需要一次又一次地重新连接。最好使用一些NoSQL数据库来实现这种动态数据存储。