如何将 Spring 与 JavaFX 一起使用?

Posted

技术标签:

【中文标题】如何将 Spring 与 JavaFX 一起使用?【英文标题】:How to use Spring with JavaFX ? 【发布时间】:2013-04-15 08:28:15 【问题描述】:

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

那么请谁能详细解释一下如何使用spring框架配置JavaFX?

【问题讨论】:

javacodegeeks.com/2013/03/javafx-2-with-spring.html 看看这个steve github repository。 【参考方案1】:

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

希望对你有帮助。

【讨论】:

移至 gitlab。您可以通过gitlab.com/sunkur/SpringJavaFXController 访问 您能否编辑答案,以便我删除反对票? :)【参考方案2】:

有很多方法可以将 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,并且您不会遇到类路径问题。

【讨论】:

以上是关于如何将 Spring 与 JavaFX 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Spring AbstractRoutingDataSource 与动态数据源一起使用?

如何将 @Transactional 与 Spring Data 一起使用?

如何将 ActiveDirectory 与 Spring-Security LDAP 一起使用

如何将 Spring WebClient 与 Jetty 一起使用,而不是 Netty?

如何将 Spring Security 与 Spring Boot Rest API 一起使用?

如何将 Comet 与 Spring MVC 一起使用?