我的应用程序无法启动,如果它使用的 PostgreSQL 数据库尚未启动(两者之间的延迟约为 2 分钟)。这是一个相当复杂的继承项目,我不能过多地摆弄配置。
我的想法是让 bean 作为 Spring 容器中的第一件事运行。我尝试使用注释 ( @PostConstruct
) 和 xml ( <bean id="dbStartupMonitor" class="ee.package.monitoring.DBStartupMonitor" init-method="checkConnection" lazy-init="false" />
) 对其进行配置,但在这两种情况下,checkConnection()
似乎都没有运行(没有出现日志记录)。另外,如何确保首先创建了这个bean?
现在,关于checkConnection()
,我们的想法是检查数据库是否已启动。如果不是,请睡一段时间,然后再试一次。这需要阻止 Spring MVC 容器的其余初始化,但我很确定它不会那样工作。
甚至有可能像这样解决它吗?