如何在JavaFX中使用Spring?

我在我的项目中使用javaFX和Scene Builder,我有很多页面。 我想避免复杂性,这就是我想使用Spring框架的原因。

所以任何人都可以向我详细解释如何使用spring框架配置JavaFX?

我搜索了Spring和JavaFX集成示例,但找不到好的示例。 所以我做了一个例子。 您可以查看此示例应用程序。 https://gitlab.com/sunkur/SpringJavaFXController

我希望它有所帮助。

将Spring与JavaFX集成的方法有很多种。 您将发现的大多数技术都是使用FXMLLoader上的API ControllerFactory在FXML控制器上Spring注入bean。 一种更高级的技术可以将Spring原型bean作为JavaFX自定义组件注入到场景中,使用的是FX BuilderLoader的API BuilderFactory(我已经做了很好的测试)。

最后,您一直在谈论SceneBuilder。 有些问题与SceneBuilder有关,而Spring则受到一些人的关注。 看一下关于类加载器和SceneBuilder的其他post: 在Scenebuilder中使用分层自定义JavaFx组件的类路径解析

如果可能的话,SceneBuilder必须不知道Spring注入。 您可以通过使用Spring Context的延迟实例(在应用程序的“启动”期间)来实现:您的自定义Spring FXMLLoader将仅在运行时使用,并且您可以在Spring未启动时使用vanilla FXMLLoader。 这样SceneBuilder就不会用它的vanilla FXMLLoader加载Spring,你也不会遇到类路径问题。