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();
}
}
여기서 서비스는 항상 null입니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?
응용 프로그램 클래스에 등록 용접의 청취자? – siva636
컨테이너가 없습니다. Dropwizard는 Java SE이며 모든 서비스 (부두, 저지 등 기본적으로 거기에 있음)가있는 팻 항아리를 내장합니다. 내가하려고하는 것은 weld-se를 그 중 하나로 포함시키는 것입니다. –