0

私はプロジェクトを開発しており、サードパーティのライブラリを使用しています。オブジェクト ExtObj を提供するライブラリを使用するとします。私のプロジェクトには、ExtObj を使用するクラス MyObj があります。MyObj に ExtObj を挿入するように spring 3 を構成するにはどうすればよいですか?

インターネットでそのトピックについて調べてみましたが、明確な答えが見つかりませんでした。xml 構成を使用したいのですが、多分 (?)@Autowiredではなく@EJB、または@Inject

前もって感謝します!

更新私の推測は次のとおりです。

<bean id="myObj" value="me.MyObj">
  <property name="extObj" value=" ... ??? ...">
</bean>

だから、何を大切にすればいいのかわからない。外部オブジェクトへの参照はそこにあると思います。ただし、Spring は、Spring で既に定義/構成されているオブジェクトのみを参照できます。そう:

<bean id="extObj" value="ext.lib.ExtObj">
<bean id="myObj" value="me.MyObj">
  <property name="extObj" value="extObj">
</bean>

その構成は正しいですか?

4

2 に答える 2

3

ExtObjまず、アプリケーション コンテキスト (xml ファイルまたは @Configuration クラス) でBean を定義する必要があります。例えば。ExtObjを受け取るコンストラクターがある場合は、String次の方法で Bean を定義できます。

<bean id="extObj" class="ext.lib.ExtObj">
    <constructor-arg value="SomeString"/>
</bean>

定義MyObjするには、コンストラクター注入を使用できます。

<bean id="myObj" class="me.MyObj">
    <constructor-arg ref="extObj"/>
</bean>

またはセッター注入:

<bean name="myObj" class="me.MyObj">
    <property name="extObj" ref="extObj"/>
</beans>

セッター注入を使用する場合MyObjは、セッターが必要setExtObjです。コンストラクター注入を使用する場合、クラスMyObjのインスタンスを取るコンストラクターが必要です。ExtObj

于 2013-05-03T12:12:21.010 に答える
1

もちろん、Spring がアクセスできるコンストラクターがある限り、サードパーティのライブラリーを注入できます。

XML または注釈のいずれかを選択して使用できます。

ライブラリ クラスのインスタンスをインスタンス化するように Spring に依頼し、それらを必要とするオブジェクトにそれを注入する必要があります。

これは、JDBC ドライバーを使用する Spring データ ソースを作成するたびに行います。それはサードパーティのライブラリです。

于 2013-05-03T11:42:51.293 に答える