ホームページ  >  記事  >  Java  >  Spring dependency Injection を JavaFX アプリケーションに統合するにはどうすればよいですか?

Spring dependency Injection を JavaFX アプリケーションに統合するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 23:55:30507ブラウズ

How can I integrate Spring Dependency Injection into my JavaFX application?

Spring を使用した JavaFX への依存性注入の統合

JavaFX には、アプリケーションの初期化 (init()) 中にアクションを定義できるライフサイクル フックが用意されています。開始 (start())、および停止 (stop())。ただし、これらのメソッド内で Spring JPA リポジトリなどの自動配線された依存関係にアクセスするのは困難な場合があります。

依存関係注入のオプション

依存関係注入を JavaFX アプリケーションに統合するには、複数の方法があります。

  • Gluon Ignite: Spring、Guice、Dagger などのフレームワークで依存関係の注入を可能にするツール。
  • SpringBoot アプリケーション: を検討してください。 SpringBoot アプリケーションを作成して、事前に構築された依存関係にアクセスし、Spring Data を使用してデータベースと対話します。

基本的な統合の例

SpringBoot アプリケーションを作成してみましょうJavaFX と統合します:

<code class="java">@SpringBootApplication
public class DemoApplication extends Application {

    private ConfigurableApplicationContext springContext;
    private Parent root;

    @Override
    public void init() throws Exception {
        springContext = SpringApplication.run(DemoApplication.class);
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/sample.fxml"));
        fxmlLoader.setControllerFactory(springContext::getBean);
        root = fxmlLoader.load();
    }

    // ...

}</code>

JavaFX コントローラーの自動配線

JavaFX コントローラーを自動配線するには:

<code class="java">@Component
@Scope("prototype")
public class DemoController {

    @FXML
    private Label usernameLabel; 

    @Autowired
    public SpringService mySpringService;

    // ...

}</code>

コントローラーに注釈を付ける@Component と @Autowired を使用して Spring 依存関係を注入します。 @Scope("prototype") アノテーションにより、ロードされたビューごとに新しいコントローラー インスタンスが確実に作成されます。

懸念事項の分離

JavaFX アプリケーションを分離することをお勧めします。懸念事項の分離を強化するための Spring アプリケーション。アプリケーション クラスの名前を変更します (例: DemoFxApplication)。

JavaFX アプリケーション クラスの自動接続

JavaFX アプリケーション クラスの依存関係を自動接続するには:

<code class="java">springContext
    .getAutowireCapableBeanFactory()
    .autowireBeanProperties(
        this,
        AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, 
        true
    );</code>

その他の考慮事項

  • SpringApplication.run() を使用して JavaFX から SpringBoot にコマンドライン引数を渡します。
  • Spring をより細かく制御するには SpringApplicationBuilder を使用します。アプリケーションの起動。
  • JavaFX アプリケーションでの事前構築済み SpringBoot 統合には、mvvmFX などのフレームワークを利用します。

これらの手法は柔軟性を提供し、Spring を使用して JavaFX アプリケーションに依存関係注入を効果的に統合できます。ただし、JavaFX での依​​存関係の注入は単純な主題ではなく、これらのアプローチは探索のためのフレームワークのみを提供することに注意することが重要です。

以上がSpring dependency Injection を JavaFX アプリケーションに統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。