簡體   English   中英

春天3:從庫注入依賴項?

[英]spring 3: inject a dependency from a library?

我正在開發一個項目,並使用第三方庫。 假設我使用的庫為我提供了對象ExtObj。 在我的項目中,我有一個MyObj類,它使用ExtObj。 如何配置spring 3在MyObj中注入ExtObj?

我試圖在互聯網上研究該主題,但沒有找到直接的答案。 我想使用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>

該配置正確嗎?

首先,您需要在應用程序上下文(xml文件或@Configuration類)中為ExtObj定義一個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>

如果使用setter注入,則MyObj需要具有setter setExtObj 如果使用構造函數注入,則MyObj需要具有一個使用ExtObj類的實例的構造函數。

當然,您可以注入第3方庫,只要它具有Spring可以訪問的構造函數即可。

您可以選擇使用XML或注釋。

您需要讓Spring實例化庫類的實例,然后將其注入需要它們的對象中。

每次創建使用JDBC驅動程序的Spring數據源時,都要執行此操作。 那是第三方圖書館。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM