【发布时间】:2015-01-01 01:04:36
【问题描述】:
我正在尝试在 dropwizard 应用程序中使用 Weld-SE 进行依赖注入。我可以像这样引导 Weld 并注入 Application 类:
public class App extends Application<AppConfig> {
@Inject NameService service;
@Inject RestResource resource;
public static void main(String[] args) throws Exception {
Weld weld = new Weld();
WeldContainer container = weld.initialize();
App app = container.instance().select(App.class).get();
app.run(args);
weld.shutdown();
}
}
我在一个单独的类中为 RestResource 编写了一个生产者方法,并且注入也很好。但是在资源类中,服务没有被注入:
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public class RestResource {
@Inject NameService service;
@GET
public String test() {
return service.getName();
}
}
这里的服务总是空的。有谁知道如何进行这项工作?
【问题讨论】:
-
你用的是什么容器?
-
没有容器。 Dropwizard 是 java se,它构建了一个包含所有服务的胖 jar(默认情况下,jetty、jersey 等都在其中)。我正在尝试做的是将weld-se 作为其中之一。
标签: java cdi dropwizard weld