【发布时间】:2019-04-28 00:50:58
【问题描述】:
我遵循抽象类,使用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。但是应用程序没有停止并且还在进程中运行
【问题讨论】:
-
您在应用程序中使用
JxBrowser吗?我问是因为某些库,例如JxBrowser,需要特别停止。