Comment utiliser Spring avec JavaFX?

J’utilise javaFX avec Scene Builder dans mon projet et j’ai plusieurs pages. Je veux éviter la complexité, c’est pourquoi je veux utiliser le framework Spring.

Alors, s’il vous plaît, est-ce que quelqu’un peut m’expliquer en détail comment configurer JavaFX avec un framework Spring?

J’ai cherché un exemple d’intégration Spring et JavaFX, mais je n’ai pas pu en trouver un bon. J’ai donc travaillé sur un exemple. Vous pouvez regarder cet exemple d’application. https://gitlab.com/sunkur/SpringJavaFXController

J’espère que ça aide.

Il existe de nombreuses façons d’intégrer Spring à JavaFX. La plupart des techniques que vous allez découvrir concernent l’injection printanière de beans sur des contrôleurs FXML à l’aide de l’API ControllerFactory sur FXMLLoader. Une technique plus avancée peut injecter des beans prototypes Spring en tant que composants personnalisés JavaFX dans votre scène avec API BuilderFactory (j’ai effectué des tests avec lesquels cela fonctionne plutôt bien) de FXMLLoader.

Enfin, vous avez parlé de SceneBuilder. SceneBuilder pose encore quelques problèmes et certains sont concernés. Jetez un coup d’œil à cet autre article sur les chargeurs de classe et SceneBuilder: Résolution de chemin de classe avec des composants hiérarchiques JavaFx personnalisés dans Scenebuilder

Il est nécessaire que SceneBuilder ne connaisse pas l’injection Spring, si possible. Vous pouvez y parvenir en utilisant l’instanciation différée de Spring Context (lors du “démarrage” de votre application): votre Spring FXMLLoader personnalisé ne sera utilisé qu’au moment de l’exécution et vous pouvez utiliser un FXMLLoader vanilla lorsque Spring n’est pas démarré. Ainsi, SceneBuilder ne chargera pas Spring avec son FXMLLoader vanilla et vous ne rencontrerez aucun problème de chemin d’access aux classes.