7
Java 8では、インタフェースでメソッド実装を提供できる新しい機能が追加されました。 メソッド本体内で使用できるインターフェイスにBeanを挿入できる方法はありますか?以下 これは少しトリッキーですが、あなたはどのような要件のためのインターフェイス内の依存関係が必要な場合は、それが動作するサンプルコードJava 8とSpring 4:インタフェースでオートワイヤリングを使用
public interface TestWiring{
@Autowired
public Service service;// this is not possible as it would be static.
//Is there any way I can inject any service bean which can be used inside testWiringMethod.
default void testWiringMethod(){
// Call method of service
service.testService();
}
}
インターフェイスをインスタンス化することはできません。あなたはそれにフィールドをオートワイヤリングしますか? – Tunaki
私のメソッド本体の中でスプリングマネージドサービスを使いたいです。 1つの方法はApplicationContext.getbean( ")メソッドを使用することですが、私はSpringで管理されたBeanをインジェクションに利用することができるSpring 4の機能を探しています。インタフェースはいくつかのBeanによって実装されるでしょう。 –
DIはSpringのコンストラクタ(コンストラクタインジェクション)やプロパティ(セッタインジェクション)の依存関係を設定することで動作します。コンストラクタもインスタンス変数もありません(インタフェースで宣言した変数は 'static final'です)、何も挿入する方法はありません。 – Ruben