同时使用CommandLineRunner和Javafx的SpringBoot应用程序

同时使用CommandLineRunner和Javafx的SpringBoot应用程序,java,spring-boot,javafx,Java,Spring Boot,Javafx,我仍在努力让我的项目工作,我必须将SpringBootApplication实现NG CommandLineRunner和JavaFX应用程序结合起来。这两个部分各自都可以很好地工作,但是当我尝试组合它们时,通常只有这个输出。 问题(我认为)是javaFX等待SpringBoot应用程序的执行,但这是一个http服务,应该一直工作。 因此,我需要该服务同时工作和使用javaFX特性 以下是SpringBootApplication类: 受保护的可配置应用程序上下文springContext @

我仍在努力让我的项目工作,我必须将SpringBootApplication实现NG CommandLineRunner和JavaFX应用程序结合起来。这两个部分各自都可以很好地工作,但是当我尝试组合它们时,通常只有这个输出。

问题(我认为)是javaFX等待SpringBoot应用程序的执行,但这是一个http服务,应该一直工作。 因此,我需要该服务同时工作和使用javaFX特性

以下是SpringBootApplication类:

受保护的可配置应用程序上下文springContext

@Override    public void init() throws Exception {

   //springContext = springBootApplicationContext();    }

@Override    public void start(Stage primaryStage) throws Exception  {


   Parent root = FXMLLoader.load(getClass().getResource("/Sample.fxml"));
   Scene scene = new Scene(root);
   primaryStage.setTitle("Hello World");
   primaryStage.setScene(scene);
   primaryStage.show();
   springContext = springBootApplicationContext();    }

private ConfigurableApplicationContext  springBootApplicationContext() {
   SpringApplicationBuilder builder = new SpringApplicationBuilder(bpplication.class);
   String[] args = getParameters().getRaw().stream().toArray(String[]::new);
  return builder.run(args);    }
当我在init()中启动SpringBootApplication时(注释掉),gui甚至没有出现


提前感谢您的帮助

是您用Spring运行无限循环(或者阻塞)创建的东西吗。如果是这样,那应该在后台线程中完成。
@Override    public void init() throws Exception {

   //springContext = springBootApplicationContext();    }

@Override    public void start(Stage primaryStage) throws Exception  {


   Parent root = FXMLLoader.load(getClass().getResource("/Sample.fxml"));
   Scene scene = new Scene(root);
   primaryStage.setTitle("Hello World");
   primaryStage.setScene(scene);
   primaryStage.show();
   springContext = springBootApplicationContext();    }

private ConfigurableApplicationContext  springBootApplicationContext() {
   SpringApplicationBuilder builder = new SpringApplicationBuilder(bpplication.class);
   String[] args = getParameters().getRaw().stream().toArray(String[]::new);
  return builder.run(args);    }