1. Maven configuration
<dependency>
<groupId>ru.vyarus</groupId>
<artifactId>dropwizard-guicey</artifactId>
<version>7.0.0</version>
</dependency>
2. Register guice package
public class HorseApplication extends Application<HorseConfiguration> {
public static void main(final String[] args) throws Exception {
new HorseApplication().run(args);
}
@Override
public String getName() {
return "Horse";
}
@Override
public void initialize(final Bootstrap<HorseConfiguration> bootstrap) {
// 注册guice包
GuiceBundle guiceBundle = GuiceBundle.builder()
.enableAutoConfig()
.build();
bootstrap.addBundle(guiceBundle);
}
@Override
public void run(final HorseConfiguration configuration,
final Environment environment) {
}
}
3. Dependency injection (three ways)
(1) Constructor injection
@Path("/goods")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class GoodsResource {
private final GoodsRepository goodsRepository;
@Inject
public GoodsResource(GoodsRepository goodsRepository) {
this.goodsRepository = goodsRepository;
}
}
(2) Field injection
@Path("/goods")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class GoodsResource {
@Inject
private GoodsRepository goodsRepository;
}
(3) Setter method injection
@Path("/goods")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class GoodsResource {
private GoodsRepository goodsRepository;
@Inject
public void setGoodsRepository(GoodsRepository goodsRepository) {
this.goodsRepository = goodsRepository;
}
}