我将一些代码作为2个单独的配置运行,如下所示:
SpringApplication north = new SpringApplication(MyApp.class);
north.setAdditionalProfiles("north");
north.run();
SpringApplication south = new SpringApplication(MyApp.class);
south.setAdditionalProfiles("south");
south.run()
这很好。但是,当我尝试同时在ForkJoinPool
上运行它们时,作为两个单独的任务,日志记录变得一团糟(对于每个线程,相同的日志消息出现2-3次或更多)。
我尝试设置org.springframework.boot.logging.LoggingSystem=none
,但没有效果。
有没有记载的方法可以在同一个JVM中同时运行两个SpringBoot配置?
答案 0 :(得分:0)
通过将应用程序的多线程部分从CommandLineRunner::run
/ SpringApplication::run
移到Bean来解决问题。委托SpringApplication::run
来执行初始化,使用返回的ConfigurableApplicationContext
来解析和调用基于Bean的进程。