使用Jersey

时间:2016-04-15 17:04:33

标签: java dependency-injection jersey jersey-2.0 hk2

我在理解Java中的注入原则时遇到了问题(我最初来自.NET世界)。

我有扩展frm AbstractBinder的类,它包含两个绑定:

bind(new Class1()).to(Class1Interface.class);
bind(Class2.class).to(Class2Interface.class).in(Singleton.class);

在Class2中我有:

@Inject
Class1Interface Instance;

实例值始终为空...我做错了什么?

ADD0: 我假设可能存在一些配置问题。这是我的web.xml

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>javax.ws.rs.Application</param-name>
      <param-value>com.myapp.configuration.AppMain</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
</web-app>

ADD1:Class1和Class2

public interface Class1Interface{
Properties getProperties();
}

public Class1 extends Class1Interface{
@Override
public getProperties(){...}
}

public interface Class2Interface{
void SomeMethod();
}

public class Class2 extends Class2Interface{

@Inject
Class1Interface Config;

@Override
public void SomeMethod(){...}
}

问题前面列出的Binder详细信息。

0 个答案:

没有答案