【发布时间】:2013-04-15 08:28:15
【问题描述】:
我在我的项目中使用带有 Scene Builder 的 javaFX,并且我有很多页面。我想避免复杂性,这就是我想使用 Spring 框架的原因。
那么请谁能详细解释一下如何使用spring框架配置JavaFX?
【问题讨论】:
标签: java spring dependency-injection javafx-2 javafx
我在我的项目中使用带有 Scene Builder 的 javaFX,并且我有很多页面。我想避免复杂性,这就是我想使用 Spring 框架的原因。
那么请谁能详细解释一下如何使用spring框架配置JavaFX?
【问题讨论】:
标签: java spring dependency-injection javafx-2 javafx
我搜索了 Spring 和 JavaFX 集成示例,但找不到一个好的示例。所以我研究了一个例子。您可以查看此示例应用程序。 https://gitlab.com/sunkur/SpringJavaFXController
希望对你有帮助。
【讨论】:
有很多方法可以将 Spring 与 JavaFX 集成。 您将发现的大多数技术都针对使用 FXMLLoader 上的 API ControllerFactory 在 FXML 控制器上注入 bean。 更高级的技术可以使用 FXMLLoader 的 API BuilderFactory(我已经对其进行了测试,它运行良好)将 Spring 原型 bean 作为 JavaFX 自定义组件注入到您的场景中。
最后,您一直在谈论 SceneBuilder。 SceneBuilder 仍然存在一些问题,Spring 受到一些关注。看看关于类加载器和 SceneBuilder 的另一篇文章: Classpath resolution with hierarchical custom JavaFx components in Scenebuilder
如果可能,SceneBuilder 有必要不知道 Spring 注入。您可以通过使用 Spring Context 的延迟实例化(在应用程序的“启动”期间)来实现这一点:您的自定义 Spring FXMLLoader 将仅在运行时使用,并且您可以在 Spring 未启动时使用 vanilla FXMLLoader。这样,SceneBuilder 将不会使用其 vanilla FXMLLoader 加载 Spring,并且您不会遇到类路径问题。
【讨论】: