轻量级微服务框架Jersey
Jersey 是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。它扩展了JAX-RS 参考实现, 提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发。尽管相对年轻,它已经是一个产品级的 RESTful service 和 client 框架。
——百度百科
介绍Jersey之前,我们先来了解几个相关的概念。
RESTful
REST(Representational State Transfer,表述性状态转移),最早是Roy Fielding博士在2000论文中提出的概念,是一种软件架构风格。REST提倡以下设计原则:
- 网络上的所有事物都被抽象为资源
- 每个资源都有一个唯一的资源标识符
- 同一个资源具有多种表现形式(xml,json等)
- 对资源的各种操作不会改变资源标识符
- 所有的操作都是无状态的
- 符合REST原则的架构方式即可称为RESTful
想想之前用SSH框架开发的时候,几乎CRUD接口都采用POST和GET方式,接口设计如下,通过URL后缀我们也能看出来每个接口的功能。
POST http://127.0.0.1/user/save
GET http://127.0.0.1/user/delete?id=1
POST http://127.0.0.1/user/update?id=1
GET http://127.0.0.1/user/query?id=1
GET http://127.0.0.1/user/queryAll
- 1
- 2
- 3
- 4
- 5
基于RESTful的原则,上述接口就要被设计成如下格式,减少了设计的冗余,接口看起来更加清晰简洁了。
PUT http://127.0.0.1/user 创建用户
DELETE http://127.0.0.1/user/1 删除用户
POST http://127.0.0.1/user/1 修改用户
GET http://127.0.0.1/user/1 获取用户详细信息
GET http://127.0.0.1/user 获取所有用户
- 1
- 2
- 3
- 4
- 5
JSR311规范
JSR311是Java中实现Restful Web Service的API规范(即JAX-RS,The Java API for RESTful Web Services),目标在于使用注解把POJO暴露成Web Service,实现轻量级框架。
Jersey是什么?
Jersey是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。它扩展了JAX-RS 参考实现, 提供了更多的特性和工具,可以进一步地简化RESTful service 和client 开发。尽管相对年轻,它已经是一个产品级的 RESTful框架。Jersey是最早的JSR311/JSR339标准的实现,也是JSR311参考的主要对象。
另外提一点的是,虽然SpringBoot、SpringMVC、SpringCloud等框架在企业中应用更广,但Spring的web框架并不是基于JSR311/JSR339标准开发的。
官方网站:https://jersey.github.io/
- 强大而清晰的标准化注解
Jersey提供了非常容易理解和强大的注解机制,仅需要很少的代码就能完成复杂的事情,用户还可以基于Jersey提供的注解定义自己的注解。 - 高并发支持
Jersey为每一个用户访问开启新的进程,支持高并发访问,根据搭建的容器,并发数会有所不同,如Jetty容器可以轻松满足1000用户的并发访问。 - 可与Spring生态组件完美整合
Jersey支持集成Spring核心组件,既可以通过注解配置,也可以通过配置文件,比在Struts中集成Spring还要简单。 - 搭载Jetty容器,部署简单
Jetty容器的最大特点就是方便易携,体积小,作为内置化的容器,部署起来十分方便。 - RESTful Client支持,单元测试轻松完成
Jersey支持Server和Client端两种形式的应用开发,在编写单元测试时,Client机制会十分有用。 - 技术文档全面
Jersey提供丰富、条理清晰的使用用户指南文档。
https://jersey.github.io/documentation/latest/index.html
几乎所有Apache所有的大数据组件自带的Web界面都采用Jersey和内置容器Jetty的实现方案,如HDFS、Spark、Hive、Storm、Nifi、Zeppelin等。Jersey+Jetty方案的优点
(1)前后端使用同一端口,共同存亡,方便服务维护;
(2)使用Jetty作为Web容器,支持高并发。

jersey1.X由sun公司开发,所以Jersey的包名都是com.sun.jersey,从jersey2.X由Glassfish公司接手,包名都改成了org.glassfish.jersey,这是区别Jersey1.x版本和2.x版本的重要依据。
掌握Jersey框架需要学习的知识
- 基本注解(资源路径、请求方法、接收数据格式、响应数据格式)
- 参数接收和处理
- 过滤器(用户认证、日志记录)
- 文件上传下载
- 参数校验
- 集成Spring框架
- 集成Webapps
- …
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)