Java 如何在Spring初始化开始时初始化Springbean?
我想在我的Spring Boot应用程序中使用,在初始化时从Java 如何在Spring初始化开始时初始化Springbean?,java,spring,initialization,Java,Spring,Initialization,我想在我的Spring Boot应用程序中使用,在初始化时从SQLalter文件更新/初始化数据库。处理Flywaydb的Java代码应该在创建Springdatasource之后(Flywaydb需要javax.sql.datasource)但在初始化应用程序bean之前执行。我知道@DependsOn我不想避免在所有应用程序bean上设置这个 有什么方法可以按照指定的顺序初始化特定的bean吗?如果您希望在应用程序准备启动时bean回调只发生一次,那么所有bean都准备好了,并且在刷新上下文
SQL
alter文件更新/初始化数据库。处理Flywaydb的Java代码应该在创建Springdatasource
之后(Flywaydb需要javax.sql.datasource
)但在初始化应用程序bean之前执行。我知道@DependsOn
我不想避免在所有应用程序bean上设置这个
有什么方法可以按照指定的顺序初始化特定的bean吗?如果您希望在应用程序准备启动时bean回调只发生一次,那么所有bean都准备好了,并且在刷新上下文时不会再次被调用,那么一个好的Spring引导方法就是使用
ApplicationReadyEvent
,如下所示:
@EventListener(ApplicationReadyEvent.class)
public void onApplicationEvent(ApplicationReadyEvent event) {
// do tasks that should happen once on startup
}
别做什么特别的事。弹簧靴已经损坏。只有3个步骤可以采取
src/main/resources/db/migration
您不需要添加注释、创建bean或使用回调。Spring团队已经想到了这一点 不,我需要在所有其他bean准备好之前调用我的代码,因为这取决于我之前需要实现的实际DB结构?我自己使用了
应用程序StartedEvent
来检索其余上下文所依赖的关键数据。不要。。。Flyway采用弹簧靴提供开箱即用的支持,您无需为此做任何特殊的事情。通过尝试围绕框架工作,您基本上使它变得更加复杂。看到完美!工作起来很有魅力。