Eu confundi com a diferença entre o JAX-RS (bem, talvez deva usar Jersey para fazer comparação, pois o JAX-RS é apenas especificação) e os serviços Spring for Restful . Tentei procurar mais informações on-line e isso se tornou mais confuso. Minha empresa está usando o Spring MVC para desenvolver APIs Restful
A parte confusa é que JAX-RS significa API Java para RESTful Web Services , na primavera também estou usando java para desenvolver RESTful Web Services, para que eu não entenda as diferenças. O Spring segue as especificações do JAX-RS?
Pelo que sei até agora:
- O JAX-RS é um modelo / especificação, possui Jersey, RESTeasy, etc. como implementações.
spring-mvc
jersey
jax-rs
hades
fonte
fonte
spring-webmvc
módulo que também fornece o controlador de visualização de modelo do Spring.Respostas:
JAX-RS
JAX-RS é uma especificação para implementar serviços da web REST em Java, atualmente definidos pelo JSR-370 . Faz parte das tecnologias Java EE , atualmente definidas pelo JSR 366 .
Jersey (enviada com GlassFish e Payara) é a implementação de referência JAX-RS, no entanto, existem outras implementações, como RESTEasy (fornecido com JBoss EAP e WildFly) e Apache CXF (enviado com TomEE e WebSphere).
Spring Framework
O Spring Framework é um framework completo que permite criar aplicativos corporativos Java. Os recursos REST são fornecidos pelo módulo Spring MVC (mesmo módulo que fornece recursos de modelo-visualização-controlador ). Não é uma implementação do JAX-RS e pode ser vista como uma alternativa do Spring ao padrão JAX-RS.
O ecossistema Spring também oferece uma ampla gama de projetos para a criação de aplicativos corporativos, abrangendo persistência, segurança, integração com redes sociais, processamento em lote, etc.
Exemplos
Considere o seguinte controlador de recursos usando a API JAX-RS:
A implementação equivalente usando a API Spring MVC seria:
Usando Spring Boot e Jersey
O Spring Boot fornece o
spring-boot-starter-jersey
módulo que permite usar o modelo de programação JAX-RS para os terminais REST em vez do Spring MVC. Funciona muito bem com o Jersey 2.x.Para um exemplo completo de criação de um aplicativo Web com Jersey 2.xe Spring Boot 1.4.x, consulte esta resposta .
fonte
Diferenças de anotação
(A partir de 2018) O Spring MVC não padronizou as anotações do JAX-RS, pois sua solução é anterior ao JAX-RS. Aqui estão os equivalentes:
https://stormpath.com/blog/jax-rs-vs-spring-rest-endpoints
Se você estiver usando APIs não padronizadas, espere que elas sejam descontinuadas e possivelmente substituídas por uma API experimental mais recente em alguns anos. Há muito menos responsabilidade quanto à compatibilidade com versões anteriores (por exemplo, quando uma nova versão do JDK é lançada).
fonte
Trabalhei com Jersey Rest, Spring Rest e Jersey Rest com Spring. Ambos são estruturas muito ricas, com boas implementações. Eu sugiro que seja melhor usar o resto da primavera se você estiver usando outros serviços da primavera, como ORM, Spring security e DI etc.
Profissionais do JAX-RS:
Profissionais do Spring MVC:
Forneça pilha "cheia", não apenas instalações REST
Injeção de dependência / AOP / Transações
Modelos de visualização conectáveis (JSP, marcador livre, velocidade, ...)
Você pode conferir mais nos seguintes links
fonte
JAX-RS é a especificação e etc jersey são sua implementação. As pessoas usam o Spring para criar os serviços da web RestFul, porque o spring, juntamente com a implementação repousante, fornece coisas como integração de hibernação e também coisas como programação orientada a IOC e Aspect.
Onde, como se usássemos jersey para nossa implementação, o problema seria que os dados foram buscados no back-end usando algumas tecnologias ORM e teremos que escrever o código padrão para o mesmo.
Essa é a razão pela qual as pessoas e até as empresas usam a primavera, pois, juntamente com a implementação do Rest, também fornece instalações para a primavera. E agora, usando a mais recente implementação de inicialização do Spring, podemos iniciar o desenvolvimento muito rapidamente, sem muitas configurações.
fonte