Как правильно использовать Spring с JavaFx

Есть много тем с похожей проблемой, но я не понимаю, что делаю неправильно.

Я хочу создать небольшое приложение с JavaFx. Поэтому у меня есть контроллер-класс, в который я хочу внедрить сервис. Служба отвечает за синтаксический анализ файла XML и возврат пригодной для использования структуры данных.

Так что это мой код прямо сейчас:

Класс AppConfig:

@Configuration
@ComponentScan("de.freddy.services")
@PropertySource("classpath:de/freddy/application.properties")
public class AppConfig {
    public AdressbuchService adressbuchService() {
        AdressbuchService aService = new AdressbuchService();
        return aService;
    }
}

Main-приложения:

public class MeyerNewsletter extends Application {
    private Stage primaryStage;
    private Parent rootLayout;
    private ApplicationContext appContext;

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage){
        appContext = new   AnnotationConfigApplicationContext(AppConfig.class);
        this.primaryStage = primaryStage;
        this.primaryStage.setTitle("Newsletterverwaltung");           
        System.out.println(appContext.getEnvironment().getProperty("application.name") + " wurde gestartet.");
        initRootLayout();
    }

    private void initRootLayout() {
        try {
            rootLayout = FXMLLoader.load(getClass().getResource("/de.freddy/fxml/RootView.fxml"));
            primaryStage.setTitle("Newsletterverwaltung");
            primaryStage.setScene(new Scene(rootLayout));
            primaryStage.show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

И, наконец, RootController, где будет использоваться сервис:

public class RootController {

    @Autowired
    private AdressbuchService adressbuchService;

    @FXML
    public void ladeAdressbuch() {
        AdressListe liste = adressbuchService.liesAlleAdressen();
        for (Adresse a : liste.getAdressListe()) {
            System.out.println(a);
        }
    }

    @FXML
    public void speichereAdressbuch() {
        System.out.println("test2 - speichere");
    }
}    

В тот момент, когда я вызываю функцию "ladeAdressbuch()", в строке появляется исключение нулевого указателя, где я использую объект adressbuchService в Rootcontroller.

Итак, что я делаю не так?

Спасибо за помощь!

0 ответов

Другие вопросы по тегам