
net.rgielen.fxweaver.samples.springboot.application.SpringbootJavaFxApplication Maven / Gradle / Ivy
package net.rgielen.fxweaver.samples.springboot.application;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.stage.Stage;
import net.rgielen.fxweaver.samples.springboot.JavafxWeaverSpringbootSampleApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.GenericApplicationContext;
/**
* @author Rene Gielen
*/
public class SpringbootJavaFxApplication extends Application {
private ConfigurableApplicationContext context;
@Override
public void init() throws Exception {
ApplicationContextInitializer initializer =
context -> {
context.registerBean(Application.class, () -> SpringbootJavaFxApplication.this);
context.registerBean(Parameters.class, this::getParameters); // for demonstration, not really needed
};
this.context = new SpringApplicationBuilder()
.sources(JavafxWeaverSpringbootSampleApplication.class)
.initializers(initializer)
.run(getParameters().getRaw().toArray(new String[0]));
}
@Override
public void start(Stage primaryStage) throws Exception {
context.publishEvent(new StageReadyEvent(primaryStage));
}
@Override
public void stop() throws Exception {
this.context.close();
Platform.exit();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy