SwiceアプリケーションでGuiceを使用する方法

ジェルコ乾燥:

スパゲッティからGuiceでの依存性注入の使用に変換したいSwingアプリケーションがあります。Guiceを使用して構成やタスクキューなどのサービスを提供することはうまくいきましたが、私は今アプリのGUIから始めており、どのように進めるかわかりません。

アプリケーションは基本的に、JFrameに一連のタブを備えたJTabbedPaneです。各タブはJPanel、さまざまなコンポーネントをレイアウトする個別のサブクラスであり、特定のボタンが押されたときにアクションを実行するためのサービスが必要です。

現在のアプリケーションでは、これは次のようになります。

@Inject
public MainFrame(SomeService service, Executor ex, Configuration config) {
    tabsPane = new JTabbedPane();

    // Create the panels for each tab and add them to the tabbedpane
    somePanel = new SomeTabPanel(service, ex, config);
    tabsPane.addTab("Panel 1", somePanel);

    someOtherPanel = new SomeOtherTabPanel(service, ex, config);
    tabsPane.addTab("Panel 2", someOtherPanel);

    ... do more stuff
}

明らかに、これはDIのベストプラクティスに厳密に従っていません。@Inject数十個のパラメーターを持つコンストラクターを取得するため、タブを使いたくありませんGuiceを使用して、必要な依存関係を必要なタブオブジェクトに注入したいのですが、それらの依存関係をすべてタブコンストラクターに渡す必要はありません。

タブのオブジェクトの依存関係のすべては、私がいることをサービスしているModuleので、基本的にすべての私は、知っていると思う私がやりたい必要なオブジェクトのためのGuiceを尋ねると、彼らは私のために構築することです。

ColinD:

マルチバインディング使用して、すべてのタブをとしてバインドできますSetか?タブに使用する名前を取得できるインターフェイスを実装している場合は、セットからタブを追加するだけでループできます。ただし、タブの順序については、何かを理解する必要があるでしょう。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

IonicアプリケーションでAngularDSCacheFactoryを使用する方法

分類Dev

AndroidアプリケーションでMATLABを使用する方法

分類Dev

AngularアプリケーションでMjmlを使用する方法

分類Dev

春のアプリケーション用に記述されたアスペクトをguiceアプリケーションで使用する

分類Dev

WebアプリケーションでGuice Injectorを入手する

分類Dev

アプリケーション全体でGuiceインジェクターにアクセスする方法

分類Dev

nestjsアプリケーションでモーメントを使用する方法

分類Dev

アプリケーションでPlay Framework 2.4 guice Injectorにアクセスする方法は?

分類Dev

AndroidアプリケーションがGuice例外をスローする

分類Dev

QtアプリケーションでWindowsフォントを使用する方法

分類Dev

春ブーツRESTアプリケーションでFirebaseを使用する方法?

分類Dev

ノードアプリケーションで@types / nodeを使用する方法

分類Dev

Webアプリケーションでjava.util.loggerを使用する方法

分類Dev

React-SpringBootアプリケーションでSpring Securityを使用する方法

分類Dev

Spring BootアプリケーションでThreadPoolExecutorを正しく使用する方法

分類Dev

Mac OSアプリケーションでcanOpenURLを使用する方法は?

分類Dev

TypescriptとReactアプリケーションで@types / bootstrapを使用する方法

分類Dev

アプリケーションモデルでFieldValue.serverTimestampを使用する方法

分類Dev

既存のExpressアプリケーションでElectronを使用する方法

分類Dev

nodejsアプリケーションでckeditorを使用する方法は?

分類Dev

Angular2 +アプリケーションでAzureMediaServicesを使用する方法

分類Dev

JettyのonWebSocketBinaryAPIを実際のアプリケーションで使用する方法

分類Dev

Nuxtjsアプリケーションで絵文字を使用する方法

分類Dev

VUEアプリケーションでsassを使用する方法は?

分類Dev

GTK3アプリケーションでGcrSecureEntryBufferを使用する方法は?

分類Dev

CocoaアプリケーションでUKKQueueを使用する方法は?

分類Dev

wpfアプリケーションでjson応答を使用する方法

分類Dev

javafxportsで外部Jarを使用する方法-アプリケーション

分類Dev

PlayScalaアプリケーションで秘密鍵を使用する方法

Related 関連記事

  1. 1

    IonicアプリケーションでAngularDSCacheFactoryを使用する方法

  2. 2

    AndroidアプリケーションでMATLABを使用する方法

  3. 3

    AngularアプリケーションでMjmlを使用する方法

  4. 4

    春のアプリケーション用に記述されたアスペクトをguiceアプリケーションで使用する

  5. 5

    WebアプリケーションでGuice Injectorを入手する

  6. 6

    アプリケーション全体でGuiceインジェクターにアクセスする方法

  7. 7

    nestjsアプリケーションでモーメントを使用する方法

  8. 8

    アプリケーションでPlay Framework 2.4 guice Injectorにアクセスする方法は?

  9. 9

    AndroidアプリケーションがGuice例外をスローする

  10. 10

    QtアプリケーションでWindowsフォントを使用する方法

  11. 11

    春ブーツRESTアプリケーションでFirebaseを使用する方法?

  12. 12

    ノードアプリケーションで@types / nodeを使用する方法

  13. 13

    Webアプリケーションでjava.util.loggerを使用する方法

  14. 14

    React-SpringBootアプリケーションでSpring Securityを使用する方法

  15. 15

    Spring BootアプリケーションでThreadPoolExecutorを正しく使用する方法

  16. 16

    Mac OSアプリケーションでcanOpenURLを使用する方法は?

  17. 17

    TypescriptとReactアプリケーションで@types / bootstrapを使用する方法

  18. 18

    アプリケーションモデルでFieldValue.serverTimestampを使用する方法

  19. 19

    既存のExpressアプリケーションでElectronを使用する方法

  20. 20

    nodejsアプリケーションでckeditorを使用する方法は?

  21. 21

    Angular2 +アプリケーションでAzureMediaServicesを使用する方法

  22. 22

    JettyのonWebSocketBinaryAPIを実際のアプリケーションで使用する方法

  23. 23

    Nuxtjsアプリケーションで絵文字を使用する方法

  24. 24

    VUEアプリケーションでsassを使用する方法は?

  25. 25

    GTK3アプリケーションでGcrSecureEntryBufferを使用する方法は?

  26. 26

    CocoaアプリケーションでUKKQueueを使用する方法は?

  27. 27

    wpfアプリケーションでjson応答を使用する方法

  28. 28

    javafxportsで外部Jarを使用する方法-アプリケーション

  29. 29

    PlayScalaアプリケーションで秘密鍵を使用する方法

ホットタグ

アーカイブ