Spring Boot Main e JavaFX [fechado]

Eu tenho o aplicativo Java que altera um tabuleiro de jogo (2D). Agora eu quero ter uma GUI JavaFx para visualizar o quadro.

A Principal:

package example;

import example.common.MyService;
import example.gui.GUI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan({"example"})
public class Main ,implements CommandLineRunner {

    @Autowired
    MyService myService;

    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
        GUI.launchApp(GUI.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println("gameloop or something");
        System.out.println(myService.getSomething());
    }

}

AbstractJavaFxApplicationSupport:

package example.gui;


import javafx.application.Application;
import org.springframework.boot.SpringApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.stereotype.Component;

@Component
public abstract class AbstractJavaFxApplicationSupport extends Application {

    private static String[] savedArgs;
    static ConfigurableApplicationContext applicationContext;

    @Override
    public void init() throws Exception {
        super.init();
        applicationContext = SpringApplication.run(getClass(), savedArgs);
        applicationContext.getAutowireCapableBeanFactory().autowireBean(this);
    }

    @Override
    public void stop() throws Exception {
        super.stop();
        applicationContext.close();
    }

    public static void launchApp(Class<? extends AbstractJavaFxApplicationSupport> appClass, String[] args) {
        AbstractJavaFxApplicationSupport.savedArgs = args;
        Application.launch(appClass, args);
    }

}

GUI:

package example.gui;

import example.common.MyService;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class GUI extends AbstractJavaFxApplicationSupport {

    @Autowired
    private MyService myService;

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

        if (null == myService) {
            throw new IllegalStateException("Service was not injected properly");
        }

        primaryStage.setTitle("Spring with JavaFX");

        StackPane root = new StackPane();
        root.getChildren().add(new Label("Hello World with " + myService.getSomething()));

        Scene scene = new Scene(root);
        scene.setFill(Color.TRANSPARENT);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

MyService:

package example.common;

import org.springframework.stereotype.Component;

@Component
public class MyService {
    public int getSomething() {
        return 42;
    }
}

A maioria das integrações de inicialização por mola do JavaFx são como as mostradas acima: Elas prescrevem a GUI como ponto de entrada para o aplicativo. Se eu executar este exemplo, dois aplicativos individuais serão inicializados (obviamente. Porque existem duas chamadas SpringApplication.run). Se você quer uma GUI autônoma, tudo bem, mas, para meu caso, não é.

O que eu realmente quero é uma bota e que eles compartilhem o mesmo contexto. Como arquivar isso? Ficaria grato se alguém pudesse me levar na direção certa.

questionAnswers(1)

yourAnswerToTheQuestion