web-dev-qa-db-ja.com

SpringをJavaFXで使用する方法は?

プロジェクトでSceneBuilderでjavaFXを使用していますが、ページがたくさんあります。複雑さを避けたいので、Springフレームワークを使用したいと思います。

では、Springフレームワークを使用してJavaFXを構成する方法について詳しく説明してもらえますか?

15
vijayk

SpringとJavaFXの統合サンプルを検索しましたが、適切なサンプルが見つかりませんでした。そこで私は例に取り組みました。このサンプルアプリケーションを見ることができます。 https://gitlab.com/sunkur/SpringJavaFXController

お役に立てば幸いです。

12
Mehmet Sunkur

SpringをJavaFXと統合する方法はたくさんあります。見つけるテクニックのほとんどは、FXMLLoaderのAPI ControllerFactoryを使用して、FXMLコントローラーにBeanをSpringインジェクションすることを目的としています。より高度な手法では、FXMLLoaderのAPI BuilderFactory(非常にうまく機能することをテストしました)を使用して、SpringプロトタイプBeanをJavaFXカスタムコンポーネントとしてシーンに挿入できます。

最後に、SceneBuilderについて話していました。 SceneBuilderにはまだいくつかの問題があり、Springはいくつかの問題を懸念しています。クラスローダーとSceneBuilderに関するこの他の投稿を見てください: Scenebuilderの階層的なカスタムJavaFxコンポーネントを使用したクラスパス解決

可能であれば、SceneBuilderがSpringインジェクションを認識しないようにする必要があります。これは、Spring Contextの遅延インスタンス化を使用することで実現できます(アプリケーションの「開始」中)。カスタムSpring FXMLLoaderは実行時にのみ使用され、Springが開始されていないときにVanillaFXMLLoaderを使用できます。このようにして、SceneBuilderはSpringにVanilla FXMLLoaderをロードせず、クラスパスの問題は発生しません。

4
zenbeni