问题描述
对于不同的城市和具有 ADMIN 角色的用户,将有 2 个具有相同数据的数据库,该用户可以访问两个城市。 我搜索了它并获得了一些信息,例如
#first db
spring.datasource.url = [url]
spring.datasource.username = [username]
spring.datasource.password = [password]
spring.datasource.driverClassName = org.postgresql.Driver
#second db ...
spring.secondDatasource.url = [url]
spring.secondDatasource.username = [username]
spring.secondDatasource.password = [password]
spring.secondDatasource.driverClassName = org.postgresql.Driver
但是我找不到关于普通用户的信息。有人可以帮我吗?
解决方法
因此,您有两个不同的数据库,因为您应该创建两个具有不同属性前缀的 DataSource
bean。
@Bean
@ConfigurationProperties(prefix = "spring.datasource1")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "spring.datasource2")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
以及 dataSources
中 application.yaml
的不同设置:
spring:
application:
name: name
datasource1:
platform: postgresql
driver-class-name: org.postgresql.Driver
url: url1
username: admin
password: secret
name:
hikari:
spring:
application:
name: name
datasource2:
platform: postgresql
driver-class-name: org.postgresql.Driver
url: url2
username: admin
password: secret
name:
hikari:
之后,您将有 2 个 bean primaryDataSource
和 secondaryDataSource
用于访问第一个或第二个数据库。