我试图在春天向土发委会管理的构成部分注入一个灯塔,但我不会成功。 养蜂没有注入,而是每当注射时就开新陈词。 我的环境是Tomcat 7和JBoss Weld。
The Spring ApplicationContext is straighforward:
<beans>
...
<bean id="testFromSpring" class="test.Test" />
...
</bean>
土发委会管理着好像:
@javax.inject.Named("testA")
public class TestA {
@javax.inject.Inject
private Test myTest = null;
...
public Test getTest() {
return this.myTest;
}
}
这是我的<条码>。
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0">
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
</faces-config>
然而,当我查阅<代码>测试编码>财产时,从共同财产基金网页上取出一个新的<代码>。 测试编码>例在每次进入时都制作。 这是一个简单的例子:
<html>
...
<p>1: <h:outputText value="#{testFromSpring}" /></p>
<p>2: <h:outputText value="#{testA.test}" /></p>
...
我获得以下产出:
1: test.Test@44d79c75
2: test.Test@53f336eb
复习:
1: test.Test@44d79c75
2: test.Test@89f2ac63
我可以看到,第一个产出是正确的。 不管我怎样经常更新网页,testFrom Spring
从春天确定的星体中恢复价值。 然而,第二个产出清楚表明,每一次<代码>就都有目标。 可在<条码>测试代码>部分上采用条码>测试方法,新的<条码>。 测试代码>例的创建和投放,而不是像我所期望的那样从春季开始。
因此,这种行为的原因是什么?
我怎么能把春天的灯子带入土发委会管理的灯塔?
我也利用春天确定的名称使用一个限定词,但现在有人提出例外,指出无法找到:
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Injection point has unsatisfied dependencies. Injection point: field test.TestA.myTest; Qualifiers: [@javax.inject.Named(value=testFromSpring)]
准则
@javax.inject.Named("testA")
public class TestA {
@javax.inject.Inject
@javax.inject.Named("testFromSpring")
private Test myTest = null;