Dependency injection 未拾取Java EE限定符批注
我正在youtube上观看一个简单的JavaEE6注释视频。我已经在github上创建了一个。首先是一个servlet,它使用注释创建问候语字符串Dependency injection 未拾取Java EE限定符批注,dependency-injection,java-ee-7,Dependency Injection,Java Ee 7,我正在youtube上观看一个简单的JavaEE6注释视频。我已经在github上创建了一个。首先是一个servlet,它使用注释创建问候语字符串 @WebServlet(urlPatterns = {"/HelloServlet"}) public class HelloServlet extends HttpServlet { @Inject @Formal String greetingMessage; ... } 正式限定符的定义如下: @Qualifier @Ret
@WebServlet(urlPatterns = {"/HelloServlet"})
public class HelloServlet extends HttpServlet {
@Inject @Formal
String greetingMessage;
...
}
正式限定符的定义如下:
@Qualifier
@Retention(RUNTIME)
@Target({TYPE, METHOD, FIELD, PARAMETER})
public @interface Formal {}
而制作人是:
public class ProduceFormalGreeting {
@Produces
@Formal
public String GetFormalGreeting(){
return "Good morning !";
}
}
在编译时,我从NetBeans获得以下消息:
Unsatisfied Dependency: No bean matches the inject point
在运行时,servlet中的字符串为
null
。您必须将beans.xml
文件添加到WEB-INF。现在您有了bean.xml
文件
在
produceformgreeting
中,您必须使用javax.enterprise.inject.products
(而不是javax.ws.rs.products
)我改为beans.xml。同样的结果。对于在注入点[[BackedAnnotatedField]\@Inject\@Formal mypackage.HelloServlet.greetingMessage]处具有限定符[\@Formal]的类型[String]的未满足依赖项,您还有一个错误。在produceformgreeting
中,您必须使用javax.enterprise.inject.products
(而不是javax.ws.rs.products
)不客气。顺便说一句,我已经更新了我的答案,现在所提到的问题都收集在一起了。