如何在JavaFX中使用Spring?

vij*_*ayk 15 java spring dependency-injection javafx javafx-2

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

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

Meh*_*kur 12

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

我希望它有所帮助.


zen*_*eni 4

将 Spring 与 JavaFX 集成的方法有很多种。您会发现的大多数技术都是针对使用 FXMLLoader 上的 API ControllerFactory 在 FXML 控制器上进行 Spring 注入 Bean。更先进的技术可以使用 FXMLLoader 的 API BuilderFactory(我已经进行了测试,它工作得很好)将 Spring 原型 bean 作为 JavaFX 自定义组件注入场景中。

最后,你一直在谈论SceneBuilder。SceneBuilder 和 Spring 仍然存在一些问题,一些人对此表示担忧。看看关于类加载器和 SceneBuilder 的另一篇文章: Scenebuilder 中使用分层自定义 JavaFx 组件进行类路径解析

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