[英]Dynamically connecting to Database in Java(Spring Boot)
我想在每个 http 请求时连接到数据库(在每个请求中,我都会从用户那里获取数据库详细信息)。谁能建议如何使用 spring-boot-starter-jpa 来做到这一点。
我无法将属性文件用于数据库配置详细信息。 因为我将从 http 请求动态获取详细信息。
我使用的是 2.0.0.M3 spring boot 版本。
我建议您更好地使用本机 JDBC 代码来连接数据库并执行查询。 如果要使用 spring 数据 jpa,则必须在运行时为DataSource
、 EntityManagerFactory
和JpaTransactionManager
创建 bean。
如果数据库详细信息将出现在每个用户请求中,并且您希望在每个 http 请求上连接数据库,那么这不是可取的,因为在没有数据库实例化的情况下,在应用程序启动时甚至没有实体管理器工厂。 但是,在这种情况下,您必须手动管理所有这些内容。 您必须在每个请求上手动创建数据源、事务管理器、实体管理器等实例化和初始化,并将它们注册到 spring IOC 容器,在请求完成后,您必须从 Spring IOC 手动删除(取消注册)这些实例。 您也可以为此创建拦截器。 但是没有人应该手动执行这个过程,因为它太老练和更复杂,我们正在负担这个实例化以自己销毁 bean。 甚至 spring 也能很好地管理它,我们通过自己负责来制造复杂性。
我觉得直接连接用户的数据库可能不太合适。我建议做一个接口程序,把你需要的动态数据收集到一个数据库中。你不能在你的代码中改变连接参数的属性。
您需要使用@ConfigurationProperties
注释在类中加载spring boot 的属性文件。
您还需要在此类中调用数据库配置 api。
相同的要求,我确信我连接的所有数据库都具有相同的结构
到现在有什么解决办法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.