私は春のプロジェクトで注入する必要のある外部ライブラリからのJavaオブジェクトをいくつか持っています。問題は、ライブラリからのクラスが認識していない任意のスプリングAPIの春のPOJO注入CDIと似ています
私は図書館から私は
後org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type
を取得しています@Autowiredを使用してサービスに豆を注入した場合、私のサービスクラスがある
@Path("/test")
public class TestService {
@Autowired
SomeOtherClass service;
@GET
public Response get(){
return Response.ok(service.someMethod()).build();
}
}
と以下は、春を意識していない図書館のクラスです。
public class SomeOtherClass {
public String someMethod(){
return "Data from library";
}
}
私のサービスを呼び出すと、私は例外として
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.SomeOtherClass' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
**CDI**
に注入と同様のプレーンなJavaオブジェクトを春に挿入する方法はありますか? applicationContext.xmlを定義し、xmlにSomeOtherClassを定義してgetBeanを使用する方法がありますが、そのようにしたくありません。他の選択肢はありますか?
注:私は図書館
Cannot use applicationcontext.xml
Cannot @Configuration @Bean to produce beans
から来たクラスの100's
を持っているので、オプション次は考えることはできません。次のように
'getBean'は' SomeOtherClass'のインスタンスを宣言するだけで '@ Autowired'が動作するだけです。 SpringはマネージドBeanのみを注入します(何かがマネージドBeanでない場合は、CDIのように注入することもありません)。 –
次に春を使わないでください...春の管理されたインスタンスであることが知られているクラスを作成する必要があります。 xmlまたはjavaベースの設定を使用できない(または使用しない)場合は、春に役立つことはあまりありません。 (しかし、あなたはこれらのクラスを検出/スキャンするために春を拡張することができますが、それは内部の知識と春の作業を必要とします)。 –