我有一个Web应用程序(war文件)依赖于(Maven)另一个使用Spring进行依赖注入的项目(jar文件)。所以在那个其他项目中我有几个xml文件来声明我的bean,在我的案例中是业务对象。我开始使用WildFly而不是Tomcat / Jetty,显然有一个名为Weld的东西负责DI。我的网络应用程序不使用Spring(现在),它只是一个简单的Jersey RESTful API 我希望我的业务对象可以在我的资源(控制器)中注入(@Inject)。
如何让我的bean可以访问,这意味着我们如何混合Spring DI和WildFly DI?
现在,在我的网络应用项目中,我有一个WEB-INF / beans.xml文件:
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:weld="http://jboss.org/schema/weld/beans"
xsi:schemaLocation="
http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd
http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd
bean-discovery-mode="all">
</beans>
但是当我尝试部署时,对于这段代码:
@Inject SomeBO myBO;
我收到此错误:
WELD-001408:类型为SomeBO且带有限定符@Default
的依赖项不满意
感谢。
修改
我需要用xml文件导入我的bean,我不想对它们进行注释,例如我有一个包含这样声明的bo.xml文件(Spring bean):
<bean id="com.xxx.bo.SomeBO" parent="com.xxx.bo._AbstractBO">
<property name="target">
<bean class="com.xxx.bo.SomeBOImpl">
<property name="DAO" ref="com.xxx.dao.SomeDAO"/>
</bean>
</property>
</bean>