問題タブ [picocontainer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dependency-injection - PicoContainer JSR-330 @Named サポート?
PicoContainer は、 JSR-330@Inject
および@Named
. (いいえ、この別の質問は役に立たないようです。PicoContainer サイトが JSR-330 のサポートが追加されたと述べているという事実に対処していないためです。)
次のようにコンテナに何かを追加します。
@Named
コンストラクターのパラメーターを次のようにマークします。
しかし、Foo
インスタンスを取得しようとすると、PicoContainer はインスタンスが多すぎBar
て選択できないと文句を言います。
質問 1:コンストラクター インジェクションで PicoContainer を使用するにはどうすればよい@Named
ですか?
次に、内部でフィールド注入を使用しようとしますFoo.java
:
それもうまくいきません。
質問 2: PicoContainer をコンストラクター インジェクション@Inject
と連携させるにはどうすればよいですか?@Named
それとも、PicoContainer のニュース ページが間違っていて、単に JSR-330 に対する PicoContainer 2.x のサポートがまったくないのでしょうか?
java - Cucumber-jvm 指定されたパラメーターが次のコンストラクターのいずれとも一致しません: [private java.lang.Class()];
Android で簡単な Cucumber BDD テストをテストしていますが、cucumber エラーが発生します。
このエラーがどこから来ているのかわかりません。何か不足していますか?
私の機能ファイル
ステップ定義
ノート:
- アンドロイドスタジオ: 1.0.2
- グラドル: 2.2.1
- キュウリ: 1.2.0
- エスプレッソ: 2.0
java - ファクトリによって注入されたコンポーネントを PicoContainer に開始/停止/破棄させるにはどうすればよいですか?
すべてのコンポーネントをキャッシュする PicoContainer があります。すべてのコンポーネントをキャッシュするため、コンテナーのライフサイクルの適切な時点で、start
をstop
呼び出すことを期待しています。dispose
ただし、を使用してコンポーネントを構築するFactoryInjector
と、そのコンポーネントもキャッシュされているにもかかわらず、これらのメソッドがまったく呼び出されないことがわかりました。
次の例を見てください。
これを実行した結果は次のようになります。
というわけでstart()
、作成してインスタンスとして注入したコンポーネントが起動します。コンストラクター注入によって注入したコンポーネントが構築され、開始されます。しかし、工場経由で注入したコンポーネントからは何も見えません。
ドキュメントに関する限り、Javadoc for show FactoryInjector
、#start
および#stop
methods#dispose
は、ファクトリがスピンアウトするコンポーネントではなく、ファクトリ自体が独自のライフサイクル処理を実行することを目的としているようです。
ソースをざっと見てみると、アダプターの実装でComponentLifecycle
メソッドが呼び出されることがわかりますが、それをフックする方法がすぐにはわかりません。他の実装クラスを見ると、実際にはすべてが別のものに委譲されているようです。実際に何が起こっているのかを理解するのは困難です。
これを行う適切な方法は何ですか?これを行う適切な方法はありますか?
javascript - ページオブジェクトモデルの設計時にBDDキュウリSeleniumを試しているときにこのエラーが発生する
スレッド "メイン" cucumber.runtime.CucumberException: java.lang.AbstractMethodError: cucumber.runtime.java.picocontainer.PicoFactory.addClass(Ljava/lang/Class;)V での例外 cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend) .java:154) cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:68) で cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:41) で cucumber.runtime.java.JavaBackend.loadGlue( JavaBackend.java:86) cucumber.runtime.Runtime.(Runtime.java:91) cucumber.runtime.Runtime.(Runtime.java:69) cucumber.runtime.Runtime.(Runtime.java:65) キュウリ.api.cli.Main.run(Main.java:35) at cucumber.api.cli.Main.main(Main.java:18) 原因: java.lang.AbstractMethodError: cucumber.runtime.java.picocontainer.PicoFactory .addClass(Ljava/言語/クラス;)V at cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend.java:149) ... 8 もっと見る
scala - Cucumber ステップ定義間での変数の受け渡し
Cucumber では、ステップ定義クラス間で変数を渡すにはどうすればよいですか。Scalaで実装しようとしています。
周りを見回すと、Guice や Picocontainer、その他の DI フレームワークの使用を提案する人がいます。しかし、実際には Scala での例に出くわしたことはありません。
たとえば、以下の例では、 DI を使用して変数を渡すにはどうすればよいですか?
Provider.scala、
Consumer.scala、