我一直在研究springboot应用程序,它包含10个以上的数据源,称为多租户。
一开始,我不知道从哪个数据库查询数据。我仅基于http请求参数获得了数据库配置并建立了数据库连接,因此在初始化spring应用程序时无法加载dao组件。
然后,当我获得数据库连接时,如何动态注入dao组件?
此外,下一个http请求可能会从另一个数据库获取信息,我必须基于此数据库连接再次注入此dao组件
答案 0 :(得分:0)
我不确定您的应用程序的结构如何,但是对于类似的用例,我们用@Requestscope
注入bean(代码用于Google数据存储,其中,名称空间是根据请求动态解析的)
@Bean
@RequestScope
public DatastoreNamespaceProvider datastoreNamespaceProvider() {
return () -> namespaceProvider().getNamespace();
}
namespaceProvider()
还是一个带有@Requestscope
的bean,它从API http请求中读取值。