如何在 Dropwizard 中使用 Guice 绑定对象?
How to bind a object with Guice in Dropwizard?
我想在我的服务中使用绑定对象 class,在 dropwizard 中使用 guice。
考虑对象
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;
}
如何绑定此对象以便在我的服务中使用。对于字符串,我可以使用
bindConstant()
.annotatedWith(Names.named("miniodata"))
.to(configuration.getMiniodata());
但是既然在这种情况下它是一个通用对象,我该如何绑定它呢?
如果您在 DW 应用程序中配置了现有的 Guice 模块,您只需将配置对象中的 MinioData 实例绑定到关联的 class:
binder.bind(MinioData.class).toInstance(configuration.getMiniodata());
我想在我的服务中使用绑定对象 class,在 dropwizard 中使用 guice。
考虑对象
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;
}
如何绑定此对象以便在我的服务中使用。对于字符串,我可以使用
bindConstant()
.annotatedWith(Names.named("miniodata"))
.to(configuration.getMiniodata());
但是既然在这种情况下它是一个通用对象,我该如何绑定它呢?
如果您在 DW 应用程序中配置了现有的 Guice 模块,您只需将配置对象中的 MinioData 实例绑定到关联的 class:
binder.bind(MinioData.class).toInstance(configuration.getMiniodata());