繁体   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