Spring Boot @Value аннотация в проекте JavaFX является нулевой - PullRequest
0 голосов
/ 07 июня 2019

Я следовал этому руководству, чтобы интегрировать 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 равно нулю, когда я дохожу до функции запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...