使用JPA和Hibernate Web应用程序在Spring-Boot上配置多个数据库

user4856296:

我有一个使用在AWS HPC上部署的Java 8的spring boot(1.5.4.RELEASE)项目。该项目架构师的范围适用于Spring Web Application(网站)Rest API Services(移动开发人员)Company的帐户管理因此,共有3种不同的数据库,例如(2-SQL Server和1-MySQL)。

关于堆栈溢出,我在这里发布我的问题,以寻求有才华的堆栈溢出用户的帮助来实现此Spring-Boot项目的最佳方法。

这是我的配置属性文件。

application.properties

#For Public Website
spring.datasource.clone.web.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.clone.web.url = jdbc:sqlserver://127.0.0.01\\dbo:1433;databaseName=PROD_WEB;
# Username and password
spring.datasource.web.username = web
spring.datasource.web.password = ED5FLW64ZU976Q36

#For Rest API
spring.datasource.clone.url = jdbc:mysql://localhost:3306/PROD_REST;
# Username and password
spring.datasource.clone.username = rest
spring.datasource.clone.password = Firewall77#


#For Account Administration for Company Users
spring.datasource.admin.url = jdbc:sqlserver://127.0.0.01\\dbo:1433;databaseName=PROD_ADMIN;
# Username and password
spring.datasource.admin.username = admin
spring.datasource.admin.password = Firewall77#

# Backup & Cron Policy
...

我非常感谢您提出一些很好的实施建议。您对这个问题的了解会帮助我,谢谢。

cнŝdk:

您需要实现两个不同的beans,每个数据源一个,并使它们分别具有相应的配置属性:

  1. First bean将负责第一个datasource配置,并且应声明为primarywith的数据源@Primary因此可以将其设置为项目的主要数据源
  2. 第二个bean将配置第二个数据源。

这就是它们应在以下方面实现的方式Spring

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

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

application.properties考虑到这两种beans配置应按以下步骤进行配置

#For Public Website
spring.datasource.web.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.web.url = jdbc:sqlserver://127.0.0.01\\dbo:1433;databaseName= PROD_WEB;
# Username and password
spring.datasource.web.username = web
spring.datasource.web.password = ED5FLW64ZU976Q36

#For Rest API
spring.datasource.rest.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.rest.url = jdbc:mysql://localhost:3306/PROD_REST;
# Username and password
spring.datasource.rest.username = rest
spring.datasource.rest.password = Firewall77#

注意:

我在此处更改了配置属性,以便可以区分它们webrest数据源:

  1. 以开头的属性spring.datasource.web将专用于配置第一个数据源。
  2. 以开头的属性spring.datasource.rest将专用于配置第二个数据源。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

具有自动配置的Spring Data JPA应用程序的多个数据库

对允许独立配置文件的Web应用程序使用多个数据库

Spring Boot + Spring Data JPA + Atomikos +多个数据库配置

Spring Boot和Hibernate:即使没有与数据库的连接,也要启动应用程序

无法使用Spring Boot运行Web应用程序

使用Selenium WebDriver的Spring Boot Web应用程序

使用免费数据库和带有Spring&Hibernate Web应用程序的Java进行数据库复制以实现冗余

在Spring Boot Web应用程序中使用加密密码进行数据库连接

同时使用Hibernate和Spring数据jpa?

在SPRING BOOT中配置多个数据库

动态使用 Spring Boot MongoDB 存储库的多个数据库

H2 数据库 - 为多个 Spring Boot 应用程序使用持久存储

H2 数据库 - 为多个 Spring Boot 应用程序使用持久存储

在应用程序和Web之间共享数据库

如何使用NHibernate在单个应用程序中连接到多个数据库?

使用多个数据库全新构建应用程序

如何使用Hibernate检查在多个数据库应用程序中是否正确设置了必要的特权?

多个数据库的 Spring Boot 应用程序问题

Spring-boot 和多个数据库连接:自动装配服务不起作用

如何使用Spring Boot和Kotlin启动Web应用程序

在Spring Boot和Spring Security应用程序中提供静态Web资源

如何托管与Heroku共享相同Mysql数据库的多个Spring Boot Web应用程序?

使用Spring MVC和Hibernate在多租户数据库应用程序中动态添加租户

无法使用 MySQL 数据库在 Spring Boot JPA 应用程序中运行实体类

在Spring Boot应用程序中使用Azure KeyVault作为数据库密码

使用oracle作为数据库打包spring boot应用程序

Spring boot - 使用内存数据库启动应用程序

如何在共享数据库中使用多个spring-data应用程序

使用spring-boot连接到spring-batch和应用程序数据库