java - 如何在 Dropwizard 中使用 Guice 绑定(bind)对象?

标签 java guice dropwizard

我想在我的服务类中使用 dropwizard 中的 guice 绑定(bind)对象。

考虑对象

public class MinioData {
  private String endpoint;
public String getEndpoint() {
    return endpoint;
  }
}

还有服务

@Path("/upload")
@Produces(MediaType.APPLICATION_JSON)
public class UploadResource {
private final MinioData minioData;
@Inject
public UploadResource(
    @Named("miniodata") MinioData minioData) {
  this.minioData = minioData;
}

如何绑定(bind)此对象以便可以在我的服务中使用。对于字符串我可以使用

bindConstant()
.annotatedWith(Names.named("miniodata"))
.to(configuration.getMiniodata());

但是由于在这种情况下它是一个通用对象,我将如何绑定(bind)它?

最佳答案

如果您的 DW 应用程序中配置了现有的 Guice 模块,则只需将配置对象中的 MinioData 实例绑定(bind)到关联的类即可:

binder.bind(MinioData.class).toInstance(configuration.getMiniodata());

关于java - 如何在 Dropwizard 中使用 Guice 绑定(bind)对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49840299/

相关文章:

dependency-injection - 使用 guice 时如何避免到处都有 injector.createInstance()?

gradle - 扩展现有的 Gradle 任务并覆盖配置

java - 序列化/映射问题 Dropwizard/Jersey

java - 将预处理语句与 Dropwizard JDBI 和 PostgreSQL UUID 列一起使用

java - 有没有办法列出用户的所有推文?

java - 我们可以在java中将任何字符串日期值转换为日期yyyy-MM-dd吗?

java - 如何确定 JMock 模拟对象正在模拟哪个类?

java - 如何让Jersey实例化并管理生命周期并让Guice执行注入(inject)

java - 将具有多个对象的json文件读入 map java

通过堆栈跟踪的 Java 反射