Spring Boot与JAX-RS框架Jersey的完美搭配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot与JAX-RS框架Jersey的完美搭配相关的知识,希望对你有一定的参考价值。

参考技术A

编辑推荐:

Jeresy是一个轻量级的JAX-RS框架

添加Jeresy 2.x的依赖

build.gradle文件内容:

创建一个 spring boot 项目

在IDE里一路next

Spring Boot启动APP

注册jersey servlet

这和原来在 web.xml 配置的是一样的,设置 Mapping,设置 init 初始化参数,对应的 servlet class name .

所有的rest/*请求都将被 ServletContainer jersey servlet 容器接管.

创建jersey Resources

packages方式是采用扫描包的方式批量注册

register 是单个注册

创建jersey Controller,使用 JAX-RS 规范的注解进行设置即可

启动Spring Boot程序

默认端口号是:8080

在浏览器里测试

输入:http://127.0.0.1:8080/rest//user/123678

返回: "userName": "mvc.","id": 123678



Spring Boot 与 JAX-RS(Restlet)的简单微服务 [关闭]

【中文标题】Spring Boot 与 JAX-RS(Restlet)的简单微服务 [关闭]【英文标题】:Spring Boot vs. JAX-RS (Restlet) for dead simple microservice [closed] 【发布时间】:2016-05-22 01:58:07 【问题描述】:

我想构建一个非常小的自包含微服务,服务于一些 REST 操作,将数据存储在内存中(不需要持久性)。

因此,我正在寻找框架方面的最轻量级方法。在研究了可用的 JAX-RS 实现之后,Restlet 似乎是一个不错的选择。

还推荐了 Spring Boot,并带有您不需要 JAX-RS 的注释。我有点困惑。 JAX-RS 不是 Java REST 应用程序的标准吗?我不需要将 Spring Boot 与 JAX-RS 结合起来吗?

【问题讨论】:

【参考方案1】:

它们是完全不同的野兽,它们都可以以各自的方式对你有用。

我会解释:

Spring Boot 完美支持 Rest 服务。 Spring Boot 大放异彩,因为您可以在 5-6 行代码中创建一个休息服务。

Spring Boot 将:

处理 web 容器(它嵌入了 Tomcat/Jetty,尽管您也可以选择在外部部署战争)

处理所有依赖项(版本合规性等)。它还意味着 JSON 操作框架,而不仅仅是声明 REST 端点的方式。 Spring Boot 默认使用 Jackson。

处理包装所有物品的所有麻烦。如果您使用 WAR,它可能就没那么有趣了(当然,在这种情况下,您必须考虑 Web 容器,而 Spring Boot 会为您完成)。但是你使用 Jars - spring boot 将创建一个可以加载 java -jar <youjar> 的大 jar。

可以选择为您的应用程序提供指标和 JMX 内容 - 只需声明对执行器的 Maven/Gradle 依赖项即可。

所有这一切都使 Spring Boot 非常适合开发自包含微服务,这可能就是您的情况。

相反,如果您正在寻找框架来为现有解决方案提供休息,那么您可能不会使用 Spring Boot。也许你根本没有使用 Spring,谁知道呢?

所以我想说,Jersey/Restlet 等只是 Web 框架,用于更轻松地在 Java 中开发 REST 服务。而且 Spring Boot 更多的是管理你的应用程序,当然它也提供了一种使用 REST 服务的方式,就像它提供了一种使用 JDBC、Servlet API 等的方式一样。

【讨论】:

【参考方案2】:

JAX-RS 是 Java EE 规范的一部分,也是应用服务器的标准 REST API,它实现了 Java EE 规范。每个应用程序服务器通常都有自己的实现,让它成为 Wildfly、Jersey、Wink 等的 RestEasy。 这并不意味着每个支持 REST 的 Java 框架都必须实现 JAX-RS。也就是说,Restlet 不是 JAX-RS 实现,它是一个完全独立的框架(就像 Spring MVC 及其 REST 功能一样,Spring Boot 默认使用它)。

您还可以使用 JAX-RS 为 REST 开发 Spring Boot 应用程序,Spring Boot 为 Jersey 提供启动 POM 以及自动配置以最大程度地减少您自己的配置工作。

【讨论】:

以上是关于Spring Boot与JAX-RS框架Jersey的完美搭配的主要内容,如果未能解决你的问题,请参考以下文章

JAX-RS 不适用于 Spring Boot 1.4.1

springboot 之 JAX-RS 和 Jersey

爬虫框架webmagic与spring boot的结合使用--转

Spring Boot:整合Shiro权限框架

Spring Boot : ORM 框架 JPA 与连接池 Hikari

spring boot与spring mvc的区别