弹簧动态加载道

时间:2020-07-21 16:03:37

标签: java spring dao

我一直在研究springboot应用程序,它包含10个以上的数据源,称为多租户。

一开始,我不知道从哪个数据库查询数据。我仅基于http请求参数获得了数据库配置并建立了数据库连接,因此在初始化spring应用程序时无法加载dao组件。

然后,当我获得数据库连接时,如何动态注入dao组件?

此外,下一个http请求可能会从另一个数据库获取信息,我必须基于此数据库连接再次注入此dao组件

1 个答案:

答案 0 :(得分:0)

我不确定您的应用程序的结构如何,但是对于类似的用例,我们用@Requestscope注入bean(代码用于Google数据存储,其中,名称空间是根据请求动态解析的)

  @Bean
  @RequestScope
  public DatastoreNamespaceProvider datastoreNamespaceProvider() {
    return () -> namespaceProvider().getNamespace();
  } 

namespaceProvider()还是一个带有@Requestscope的bean,它从API http请求中读取值。