如何在Spring IoC容器中使用Jersey 2

时间:2013-01-31 13:53:33

标签: spring jersey

将春豆注入泽西2的最佳方法是什么?泽西岛似乎不支持这种本土化。

将2个框架连接在一起需要什么?在pom.xml和web.xml中?

3 个答案:

答案 0 :(得分:15)

泽西岛2.3现在有弹簧支持:

https://jersey.github.io/documentation/latest/user-guide.html#spring

如文件中所述

  

Spring扩展模块配置基于注释

所以你必须告诉spring扫描你的类路径,例如:

<context:component-scan base-package="my.package.to.resources">

并使用spring注释注释您的资源类(我建议使用@Component,然后指定jersey资源范围@ Singleton / @ PerLookup / @RequestScoped)

@Component
@Singleton
@Path("example")
public class Example {

    //Spring beans can't be injected directly into JAX-RS classes by using Spring XML configuration
    @Autowired
    private MyOtherBean myOtherBean;

    @GET @Path("hello")
    public String hello() {
        return myOtherBean.hello();
    }
}

答案 1 :(得分:11)

截至2013年6月,Jersey 2.0尚未获得官方Spring支持。有两种选择:

  1. 使用此处的第三方代码https://github.com/marko-asplund/jersey/tree/master/ext/jersey-spring
  2. 等到HK2弹簧桥变得稳定并记录https://java.net/jira/browse/HK2-40
  3. 另见:

    http://jersey.576304.n2.nabble.com/Spring-framework-support-for-Jersey-2-td7580673.html

    编辑:泽西岛2.3现在有弹簧支持,见下面的Fabio的答案

答案 2 :(得分:-7)

您应该能够注释球衣组件,然后使用注释注入豆子。

@Service //(or @Component)
public class MyJerseyService {

    @Autowired
    private MyObj mySpringBean

}