import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class MainApp extends Application {
private ConfigurableApplicationContext springContext;
@Override
public void init() {
springContext = SpringApplication.run(MainApp.class);
}
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/main.fxml"));
springContext.getAutowireCapableBeanFactory()
.autowireBean(loader);
Parent root = loader.load();
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
@Override
public void stop() {
springContext.close();
}
public static void main(String[] args) {
launch(args);
}
}
这段代码展示了如何在Spring Boot应用程序中初始化Spring上下文并将其注入到JavaFX应用程序中。在MainApp
类中,我们覆盖了init
方法来启动Spring上下文,覆盖了start
方法来加载和显示JavaFX界面,并且使用了FXMLLoader来加载FXML文件,并使用Spring的自动装配功能来注入所需的依赖项。最后,覆盖了stop
方法以确保在应用程序退出时关闭Spring上下文。