管理加载

时间:2015-09-01 19:26:46

标签: dependencies spring-boot listener

我将Springboot用于我的应用程序模块。所以整个应用程序包含一堆独立的Springboot模块,可以同时启动,如下所示:

@Configuration
@EnableAutoConfiguration
@Import({A.class, B.class, C.class})
public class Starter{
   public static void main(String[] args){
      SpringApplication.run(Starter.class);
   }
}

A.java,B.java和C.java中的每一个都是Spring配置文件,包含各个模块的bean definations。 Starter应该基本上一起运行它们,这可以按预期工作。

然而,问题是类A,B和C具有内部依赖性。例如,只有在完全加载了A.java的所有bean之后才开始使用B.java(不仅仅是初始化)。类似地,只有在完全处理和加载来自B.java的所有bean之后,才应启动C.java。

为了捕获上述场景,我正在添加ApplicationPreparedEvent侦听器,以便在为每个模块完全加载特定类时捕获,但此事件永远不会被抛出。我也尝试过使用ApplicationReadyEvent,ContextRefreshed / ContextStarted事件,但是无法实现上面的加载顺序。我正在关注http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-application-events-and-listeners

上的Springboot文档

任何解决此问题的想法都会有所帮助。谢谢。

0 个答案:

没有答案