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