这种情况通常是因为在项目中存在多个Spring Boot应用程序初始化器。可以通过在其中一个初始化器中设置属性'order”来解决这个问题,以确保只有一个初始化器被调用。例如:
public class MyInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
// do something
}
@Order(Ordered.HIGHEST_PRECEDENCE)
public class AnotherInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
// do something else
}
}
}
在上面的代码示例中,通过使用@Order(Ordered.HIGHEST_PRECEDENCE)注释来确保AnotherInitializer在MyInitializer之前启动。其他的注释也可以使用Order注释来控制初始化器的顺序。