プロジェクトでSceneBuilderでjavaFXを使用していますが、ページがたくさんあります。複雑さを避けたいので、Springフレームワークを使用したいと思います。
では、Springフレームワークを使用してJavaFXを構成する方法について詳しく説明してもらえますか?
SpringとJavaFXの統合サンプルを検索しましたが、適切なサンプルが見つかりませんでした。そこで私は例に取り組みました。このサンプルアプリケーションを見ることができます。 https://gitlab.com/sunkur/SpringJavaFXController
お役に立てば幸いです。
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をロードせず、クラスパスの問題は発生しません。