我有以下资源类
@Path("/helloworld")
public class HelloWorldResource {
@Inject
private UserAuthorizationRepository userRepository;
@GET
public Response sayHello(@Context UriInfo uriInfo)
以下是我对UserAuthorizationRepository的实现
public class UserAuthorizationRepositoryImpl implements UserAuthorizationRepository {
@Inject
private MyUserIdToUserNameTable userIdToUserNameTable;
public String getUserName(Long userId) {
userNameToUserIdTable.getUserName(userId)
}
我已将以下活页夹注册到ResourceConfig
public class RepositoryBinder extends AbstractBinder {
@Override
protected void configure() {
bind(new UserAuthorizationRepositoryImpl()).to(UserAuthorizationRepository.class);
bind(new MyUserIdToUserNameTable()).to(UserIdToUserNameTable.class);
}
在此之后,我的资源类中的userRepository正确绑定,但UserAuthorizationRepositoryImpl中的userIdToUserNameTable为null。
有谁知道原因?提前谢谢!
答案 0 :(得分:0)
首先,看起来你自己创建UserAuthorizationRepositoryImpl而不是让hk2 / Jersey创建它。您可能想尝试:
public class RepositoryBinder extends AbstractBinder {
@Override
protected void configure() {
bind(UserAuthorizationRepositoryImpl.class).to(UserAuthorizationRepository.class);
bind(MyUserIdToUserNameTable.class).to(UserIdToUserNameTable.class);
}
这将允许hk2 / Jersey创建类,并正确地注入它们。