Я следую абстрактному классу с методами init()
и stop()
: (проблема в методе stop()
)
public abstract class AbstractJavaFxApplication extends Application {
private static String[] fxArgs;
protected ConfigurableApplicationContext applicationContext;
@Override
public void init() throws Exception {
applicationContext = SpringApplication.run(getClass(), fxArgs);
applicationContext.getAutowireCapableBeanFactory().autowireBean(this);
}
@Override
public void stop() throws Exception {
System.out.println("STOP");
applicationContext.stop();
super.stop();
}
protected static void launchApp(Class<? extends AbstractJavaFxApplication> clazz, String[] args){
fxArgs = args;
Application.launch(clazz, args);
}
}
И основной класс, который расширяет AbstractJavaFxApplication
:
@SpringBootApplication
public class WeightliftingviewerApplication extends AbstractJavaFxApplication{
@Value("First attempt")
private String tittle;
@Qualifier("mainView")
@Autowired
private ControllersConfiguration.ViewHolder view;
public static void main(String[] args) {
launchApp(WeightliftingviewerApplication.class, args);
// SpringApplication.run(WeightliftingviewerApplication.class, args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle(tittle);
primaryStage.setScene(new Scene(view.getView()));
primaryStage.setResizable(true);
primaryStage.centerOnScreen();
primaryStage.show();
}
}
Проблема в том, что, когда я закрываю приложение, я ожидаем, что попаду в метод stop()
и получу STOP
в консоли.Но приложение не остановлено и еще не запущено