2017-08-04 122 views
0

我想在每一个HTTP请求连接到数据库(在每一个请求,我将获得来自用户数据库的详细信息)。可有人建议如何使用弹簧引导启动做-jpa。动态连接到数据库在Java中(春季启动)

我无法将属性文件用于数据库配置详细信息。 因为我会从http请求动态获取细节。

我使用的是2.0.0.M3的spring启动版本。

回答

0

我认为它可能是不恰当的连接用户的数据库instantly.I建议做出的接口程序来收集你在一个database.You需要不能改变你的代码的连接参数的性能数据的动态。

+0

我没有明白你的意思? –

0

您需要加载弹簧启动的属性文件中使用@ConfigurationProperties anotation类。

此外,您还需要调用此类中的数据库配置api。

+0

你能提供工作代码! –

2

我建议你更好地使用本机JDBC代码来连接数据库并执行查询。如果您想使用弹簧数据jpa,则必须在运行时为DataSourceEntityManagerFactoryJpaTransactionManager创建Bean。

+0

项目要求是使用ORM。我不能去与本机jdbc代码 –

1

如果数据库的详细信息会在每个用户的请求,并且希望在每个HTTP请求连接数据库,那么因为你不会对应用程序启动时甚至实体管理器工厂没有数据库实例是不可取的。但是在这种情况下,你将不得不手动管理所有这些东西。您必须手动为每个请求创建数据源,事务管理器,实体管理器等实例化和初始化,并将其注册到Spring IOC容器中,并且在请求完成之后,您必须手动从Spring IOC中删除(取消注册)这些实例。你可以为此创建拦截器。但是没有人应该这样做,因为它太麻烦了,也更加复杂,我们正在为这个实例化负担,以便自己消灭豆子。 即使是春天也很好地管理着它,我们正在通过自己负责制造复杂性。

+0

这是项目的要求是否有任何其他方式来实现这一点? –

+0

@Ankit Singh,但是这个过程在时间和资源方面也非常昂贵。仍然关于它不会在运行时创建的仓库,它会抛出异常和应用程序不会启动没有实体管理器(春季数据日志仓库先决条件) –

+0

好的谢谢。所以你建议它不可能通过ORM(无论是通过jpa还是其他任何方式)。我们必须用spring-jdbc –