REST 웹 서비스를 위한 Spring 4 vs Jersey
우리는 봄 4.0.6 버전으로 새로운 애플리케이션을 만들 예정입니다."XML" 또는 "JSON"을 반환할 수 있는 컨트롤러를 사용합니다.이전 프로젝트에서는 JAX-RS API를 사용하여 Jersey with Spring for REST support를 성공적으로 구현했습니다만, 선배들의 기사나 제안을 읽어본 결과, 봄은 꽤 좋은 REST 지원을 제공하고 있다고 합니다.
JAX-RS 및 Jersey를 사용하지 않고 Spring REST 지원을 사용할 경우 매우 혼란스러운 점은 다음과 같습니다.
봄 MVC에서는 어떻게 마샬링과 언마샬링이 이루어졌습니까?
마샬링 또는 마샬링 해제에 jax-rs를 사용해야 합니까?
마샬링 및 마샬링 해제가 봄까지 자동으로 처리되는 경우 xmlRootElements에 대해 어떻게 알 수 있습니까?
나는 아직도 봄의 REST에 대한 좋은 지원이 입증된다면 왜 사람들은 여전히 Jersey로 REST를 가는가?좀 더 자세히 알고 싶습니다.
제가 무슨 말을 잘못해도 무시하세요.예를 들어 설명하는 것은 매우 도움이 됩니다.
잘 부탁드립니다!!
Jersey와 Spring MVC는 모두 훌륭하다고 생각합니다.각 프로젝트에는 독자적인 스타일과 강점이 있습니다.어쨌든 Stack Overflow는 주관적인 비교 질문에는 적합하지 않습니다(질문은 금방 종료됩니다).이미 스프링을 사용하고 있고 JAX-RS를 사용할 필요가 없다면 스프링 MVC를 사용하는 것이 좋습니다.
(un) marshalling과 같은 기능에 관해서는 JAX-RS는 사양에 불과합니다.다른 라이브러리는 동일한 API를 구현하지 않고도 유사한 기능을 제공할 수 있습니다.
Spring MVC는 MessageBodyReaders/Writer 대신 HttpMessageConverters를 사용하여 Marshalling REST 리소스를 처리(un)하고 있습니다.Spring MVC는 콘텐츠네고시에이션을 처리하여 작업에 가장 적합한 컨버터를 선택합니다(메서드에 주석을 달아 어떤 미디어 유형을 생성/소비하는지 힌트할 수 있습니다).
아니요, 리소스를 Marshall(unshall)하기 위해 JAX-RS를 사용할 필요는 없습니다.실제로 JAX-RS 구현 및 Spring MVC는 서드파티제의 시리얼라이제이션 라이브러리를 사용하여 작업을 수행합니다.따라서 특정 표준에 얽매이지 않습니다.
Spring은 4.0.6 버전에서 JSON용 잭슨, XML용 JAXB 등 많은 Http Message Converters를 지원합니다.Spring 4.1.0에서는 Http Message Converters가 추가되었습니다.
당신의 마지막 요점에 답하자면,@XmlRootElement
는 JAXB 주석이며 JAX-RS의 일부가 아닙니다.스프링은 JAXB를 지원합니다.
봄의 REST에 관한 보다 완전한 예에 대해서는, 이 스타트 업 가이드를 참조해 주세요(10~15분 후에 실행 가능한 완전한 예제를 보실 수 있습니다.
질문의 마지막 부분은 매우 주관적입니다. Jersey와 Spring(Dropwizard, Play!)뿐만 아니라 JVM에 REST 서비스를 구축하기 위한 많은 인기 솔루션이 있습니다.프레임워크 등)
AFAIK Spring REST 지원은 Jersey가 JAX-RS 사양을 구현한 반면 Spring MVC 및 JAX-RS 구현이 아닌 기반입니다.프로젝트에 Spring(Core, AOP 또는 MVC)이 있는 고객은 JAX-RS 구현업체보다 Spring ReST 지원을 선택합니다.
JAX-RS를 탑재한 성숙하고 사용하기 쉬운 저지를 추천합니다.
언급URL : https://stackoverflow.com/questions/26305363/spring-4-vs-jersey-for-rest-web-services
'itsource' 카테고리의 다른 글
MySQL Workbench를 사용하여 MySQL 데이터베이스 백업을 수행하는 방법 (0) | 2022.09.30 |
---|---|
JavaScript에서 HTML 엔티티의 이스케이프를 해제하시겠습니까? (0) | 2022.09.30 |
라우터 파라미터에 기반한 Vue http를 사용한 데이터 가져오기 (0) | 2022.09.30 |
JSTL과 함께 EL을 사용하여 Enum 값에 액세스합니다. (0) | 2022.09.30 |
VueJS 라우터 - 서브루트와 Vuetify를 사용할 때 여러 활성화루트를 정지하려면 어떻게 해야 하나요? (0) | 2022.09.30 |