我在理解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详细信息。