我想在dropwizard應用程序中使用Weld-SE進行依賴注入。我可以引導焊縫和應用程序級的注入,像這樣:使用焊接與DropWizard
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();
}
}
此處的服務始終爲空。有誰知道如何使這項工作?
什麼容器您使用在您的應用程序類註冊焊縫的聽衆? – siva636 2014-11-05 02:48:49
沒有容器。 Dropwizard是java se,它構建了一個包含所有服務(jetty,jersey等默認存在)的胖罐子。我想要做的是將weld-se作爲其中之一。 – 2014-11-06 09:57:05