gpt4 book ai didi

java - 如何在 Guice 4.0 中注入(inject)实现

转载 作者:行者123 更新时间:2023-12-02 03:04:40 25 4
gpt4 key购买 nike

我的类(class)如下,效果很好

@Singleton
public class EmpResource {

private EmpService empService;

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

}

public class EmpService {

public void getName(){..}

}

现在,我必须创建一个接口(interface),然后 EmpService 实现该接口(interface),而不是直接使用 EmpService,如下所示。

public interface IEmpService{
void getName();
}

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

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

@Singleton
public class EmpResource {

private IEmpService empService;

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

}

我见过this我不确定我的绑定(bind)应该放在哪里。 (这是我第一个与 Guice 相关的项目,所以我完全是新手)。

这是出现的错误“没有绑定(bind) com.api.EmpService 的实现。”这是完全可以理解的,但不确定如何修复它。我感谢你的帮助。

仅供引用:我正在使用 Dropwizard 应用程序。

最佳答案

您可以像这样配置您的模块:

public class YourModule extends AbstractModule {
@Override
protected void configure() {
bind(EmpService.class).to(EmpServiceImpl.class);
// ....
}
}

关于java - 如何在 Guice 4.0 中注入(inject)实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41898241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com