当前位置: 首页 > 知识库问答 >
问题:

如何在Guice 4.0中注入实现

严高峻
2023-03-14

我上了如下的课,效果很好

@Singleton
public class EmpResource {

private EmpService empService;

@Inject
    public EmpResource(EmpService empService) {
        this.empService=empService;
    }

}

public class EmpService {

public void getName(){..}

}

现在,我没有直接使用EmpService,而是创建了一个接口,EmpService实现了该接口,如下所示。

public interface IEmpService{
 void getName();
}

public class EmpServiceImpl implements IEmpService {
public void getName(){...}
}

所以现在我的资源类必须使用接口,但我不确定如何引用它必须使用的实现。

@Singleton
public class EmpResource {

private IEmpService empService;

@Inject
    public EmpResource(IEmpService empService) {
        this.empService=empService;
    }

}

我看到了这个,我不确定我的绑定应该去哪里。(这是我第一个与Guice相关的项目,所以我是一个完全的新手)。

这就是“未绑定com.api.EmpService的实现”出现的错误这完全可以理解,但不确定如何修复。我恳求你的帮助。

仅供参考:我正在使用Dropwizard应用程序

共有2个答案

黄俊雄
2023-03-14

您还必须为EmpServiceImpl类添加一个Provide方法

public class MyModule  extends AbstractModule {

    @Override
    protected void configure() {
             bind(IEmpService.class).to(EmpServiceImpl.class);
    }

    @Provides
    EmpServiceImpl provideEmpServiceImpl()  {
        // create your Implementation here ... eg.
        return new EmpServiceImpl();
    } 

}
赏育
2023-03-14

您将类似于此配置您的模块:

public class YourModule extends AbstractModule {
    @Override
    protected void configure() {
        bind(EmpService.class).to(EmpServiceImpl.class);
        // ....
    }
}
 类似资料:
  • 本文向大家介绍如何在controller中注入service?相关面试题,主要包含被问及如何在controller中注入service?时的应答技巧和注意事项,需要的朋友参考一下 在config services方法中配置这个service。 在controller的构造函数中,添加这个依赖注入。  

  • 我开始使用JHipster v.3.5.1生成我的应用程序。 过了一段时间,我需要创建验证器,以便在使用POST创建实体时对其执行一些业务逻辑验证。所以我做了: 然后,我尝试将其注入我的控制器(注释为@ResControl ler),但无论我尝试哪种方式,它总是会导致这样的结果: 我尝试创建bean并注入它的方法 然而,我尝试了它-它失败了。我总是得到NoSuchBean定义异常或字段值设置为nu

  • 问题内容: 我想利用spring-data-jpa和。但是我无法自动接线。(同一包中的所有其他服务均已正确接线): 结果: 由以下原因引起:org.springframework.beans.factory.BeanCreationException:创建名称为’userService’的bean时出错:注入资源依赖项失败;嵌套的异常是org.springframework.beans.facto

  • 我想使用spring-data-jpa和。但我无法得到它。(同一包中的所有其他服务都已正确连接): 结果: 由:org.springframework.beans.factory.BeanCreationException引起:创建名为“用户服务”的bean时出错:注入资源依赖项失败;嵌套异常是org.springframework.beans.factory.nosuchBeanDefiniti

  • 以下是关于Spring Boot中集成测试的教程:http://www.baeldung.com/spring-boot-testing 但是当我尝试注入MockMvc时,我总是得到: 创建在类路径资源[org/springframework/boot/test/autoconfigure/web/servlet/MockMvcAutoConfiguration.class]中定义的名为“mock

  • 我想设置一个由多个步骤组成的用户注册。每个步骤将以条的形式突出显示。深灰色条将是完成的步骤,浅灰色条将是需要完成的步骤。似乎想不出这样做的方法。请建议。 我们可以在myfitnesspal注册中看到这一点。我在下图的红色框中突出显示了这一点。