java – Guice Jersey:添加所有的资源和提供者,而不需要绑定到J
发布时间:2020-12-14 16:40:22 所属栏目:Java 来源:网络整理
导读:Im目前正在使用Jersey 1.8与Guice 3.0一起使用针对我的JPA的DI.这与我无法克服的一个主要问题相当合适: 我必须使用bind手动将所有泽西资源类添加到JerseyServletModule中: @Overrideprotected Injector getInjector() { return Guice.createInjector(new J
Im目前正在使用Jersey 1.8与Guice 3.0一起使用针对我的JPA的DI.这与我无法克服的一个主要问题相当合适:
我必须使用bind手动将所有泽西资源类添加到JerseyServletModule中: @Override protected Injector getInjector() { return Guice.createInjector(new JerseyServletModule() { @Override protected void configureServlets() { install(new JpaPersistModule("DBName")); filter("/*").through(PersistFilter.class); /* bind the REST resources and serve*/ bind(Hello.class); serve("/*").with(GuiceContainer.class); } }); } 我希望能够忽略对每个单一资源和提供者的绑定的使用,并在jersey-guice文档中找到一个备注:http://jersey.java.net/nonav/apidocs/1.8/contribs/jersey-guice/com/sun/jersey/guice/spi/container/servlet/package-summary.html 它基本上说可以将球衣资源的注册通过球衣服务.但是,我无法使用所述方法来管理这个问题: @Override protected Injector getInjector() { return Guice.createInjector(new JerseyServletModule() { @Override protected void configureServlets() { bind(GuiceResource.class); Map<String,String> params = new HashMap<String,String>(); params.put(PackagesResourceConfig.PROPERTY_PACKAGES,"unbound"); serve("/*").with(GuiceContainer.class,params); } } }); 遗憾的是,我无法获得关于泽西资源注册过程的更多信息. 任何帮助将不胜感激.当然,如果需要,我可以提供额外的信息! 解决方法
我回答自己的问题变得相当标准,但是我发现了一个Guice 2 Thread的答案,但幸运的是它与Guice 3和Jersey 1.8
/* * The following line will scan ausbdsoccer.server.resources package for Jersey Resources */ params.put("com.sun.jersey.config.property.packages","ausbdsoccer.server.resources"); 你去了 不要忘了将params地图传给你的GuiceContainer.class! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |