Я следовал этому руководству, чтобы интегрировать Spring Boot и JavaFX https://github.com/mvpjava/springboot-javafx-tutorial,, и когда я пытаюсь использовать аннотацию @Value в своем основном классе, при запуске приложения JavaFX он становится пустым.
Я проверил значение аннотации с помощью @PostConstruct и в функции post-construct, и она получает желаемое значение. Я также попытался определить класс @ConfigurationProperties, но он также становится нулевым при запуске приложения JavaFX.
Вот мой код:
@SpringBootApplication
public class Main extends Application {
private ConfigurableApplicationContext springContext;
private Parent rootNode;
@Value("${configurations.applicationName}")
private String applicationName;
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void init() throws Exception {
springContext = SpringApplication.run(Main.class);
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/view/main.fxml"));
fxmlLoader.setControllerFactory(springContext::getBean);
rootNode = fxmlLoader.load();
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle(applicationName);
primaryStage.setScene(new Scene(rootNode));
primaryStage.show();
}
@Override
public void stop() {
springContext.close();
}
}
Как уже было сказано, applicationName равно нулю, когда я дохожу до функции запуска.