Ответ 1
Вы должны уметь комментировать детали джерси, а затем использовать аннотации для ввода beans.
@Service //(or @Component)
public class MyJerseyService {
@Autowired
private MyObj mySpringBean
}
Каков наилучший способ включить инъекцию spring beans в Jersey 2? Джерси, кажется, не поддерживает это изначально.
Что необходимо для соединения двух фреймворков? В pom.xml и web.xml?
Вы должны уметь комментировать детали джерси, а затем использовать аннотации для ввода beans.
@Service //(or @Component)
public class MyJerseyService {
@Autowired
private MyObj mySpringBean
}
Джерси 2.3 теперь поддерживает spring:
https://jersey.github.io/documentation/latest/user-guide.html#spring
Как указано в документации
Конфигурация модуля расширения spring основана на аннотации
Итак, вы должны сказать spring сканировать свой путь к классам, например:
<context:component-scan base-package="my.package.to.resources">
и аннотировать свой класс ресурсов аннотацией spring (советую использовать @Component, а затем указать области ресурсов трикотажа @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();
}
}
По состоянию на июнь 2013 года Джерси 2.0 не имеет официальной поддержки Spring. Существует два варианта:
См. также:
http://jersey.576304.n2.nabble.com/Spring-framework-support-for-Jersey-2-td7580673.html
EDIT: у Джерси 2.3 есть поддержка Spring, см. ответ Фабио ниже