Spring Boot应用程序中的即时数据库重新配置

Nik*_*kem 6 java spring spring-mvc spring-boot

我有一个非常复杂的Spring Boot应用程序(包括Spring MVC和Security),除其他外,它还需要数据库配置(URL,用户名和密码)。要求是让最终用户在应用程序本身的帮助下配置数据库,如下所示:

  1. 用户启动没有数据库配置的应用程序
  2. 应用程序注意到缺少数据库配置,并向用户显示配置屏幕
  3. 用户输入网址和凭据
  4. 应用程序开始使用此数据库

明显的问题是,在知道DataSource该配置之前,我无法创建任何需要db的bean,这些bean 需要DB配置。

有什么方法可以推迟大多数应用程序Bean的初始化,直到执行第一个配置步骤?

-更新-一些应用程序的Bean通过其@PostConsutrct方法从数据库初始化其状态。因此,在提供配置后,我要么需要真正延迟它们的创建,要么要有一种刷新(可能)刷新应用程序上下文中所有bean的方法。

len*_*h87 2

我建议您可以考虑使用另一个模块/程序或一个简单的脚本,要求提供数据库等所有详细信息,将此信息存储到您的 application.properties 文件中(可能对重新外部化配置Spring boot 外部配置有用),然后启动您的主程序已包含有关数据源的可用信息。这可能是一个更简单的方法。