我们有这个例子:
public interface MyInterface {
public void foo();
}
并实施课程:
public class MyInterfaceImpl implements MyInterface {
@Override
public void foo() {...}
}
当我尝试将依赖类MyResource注入MyInterfaceImpl时,没有任何错误或警告会发生任何事情但是没有注入MyResource,因此代码因NullPointerException而失败:
public class MyInterfaceImpl implements MyInterface {
@Inject
private MyResource resource;
@Override
public void foo() {
resource.doAnything() <-- will throw NullPointerException
}
}
我将它打包在.war存档中,并使用简单的Jersey应用程序部署在Glassfish v4上。我还尝试将beans.xml放到WEB-INF和META-INF中。
从MyInterfaceImpl类中删除“implements MyInterface”后,注入工作正常。为什么依赖注入不能用于实现接口的类?