什么是Jersey
Jersey是JAX-RS标准的参考实现,是Java领域中开发REST式Web服务的"正统"工具。Jersey项目是GlassFish项目的一个子项目。
Jersey官方地址
https://jersey.java.net/ 英语比较好的同学可以到官网直接学习.
Jersey的七大模块
- 核心模块
- 容器模块
- 连接器模块
- Media模块
- 拓展模块
- 测试框架模块
- GlassFish Bundle
(1)核心模块
模块名称 | 模块说明 | 源代码对应目录 |
jersey-client | Jersey核心客户端实现 | core-client |
jersey-common | Jersey通用包 | core-common |
jersey-server | Jersey核心服务器实现 | core-server |
(2)容器模块
模块名称 | 模块说明 | 源代码对应目录 |
jersey-container-grizzly2-http | Grizzly 2版HTTP容器 | containers/grizzly2-http |
jersey-container-grizzly2-servlet | Grizzly 2版Serlet容器 | container/grizzly2-servlet |
jersey-container-jdk-http | JDK版HTTP容器 | contailer/jdk-http |
jersey-container-servlet | Jersey核心Servlet3.x实现 | container/jersey-servlet |
jersey-container-servlet-core | Jersey核心Servlet2.x是实现 | container/jersey-servlet-core |
jersey-container-simple-http | 简单HTTP容器 | container/simple-http |
(3)连接器模块
Jersey客户端底层依赖连接器实现网络通信,如果标准客户端模块无法实现功能需求,可以考虑引入Grizzly连接器或者Apache连接器
(4) Media模块
支持Jersey处理传输数据媒体类型的模块。
(5)拓展模块
Jersey生产环境中包含了许多JAX-RS2.0标准之外的功能,比如MVC,Bean验证辅助REST实现的模块,还有像Spring支持包这样的对第三方框架支持的模块
模块名称 | 模块说明 | 源代码相对目录 |
jersey-media-json-jackson | Jersey JSON Jackson包 | media/json-jackson |
jersey-media-json-jettison | Jersey JSON Jettiosn包 | media/json-jettison |
jersey-media-json-processing | Jersey JSON-P(JSR353)包 | media/json-processing |
jersey-media-moxy | Jersey JSON Eclipse Link MOXy包 | media/moxy |
jersey-media-multipart | Jersey Multipart支持包 | meida/multipart |
jersey-media-sse | Jersey Server Sent Events支持包 | media/sse |
jersey-bean-validation | Bean Validation(JSR-349)支持包 | ext/bean-validation |
jersey-mvc | MVC支持包 | ext/mvc |
jersey-mvc-freemarker | Freemarker模板支持包 | ext/mvc-freemarker |
jersey-mvc-jsp | JSP模板支持包 | ext/mvc-jsp |
jersey-proxy-client | 高层客户端代理支持包 | ext/proxy-client |
jersey-servlet-portability | 兼容Jersey1和Jersey2的Servlet容器支持包 | ext/servlet-portability |
jersey-wadl-doclet | Javadoc支持包 | ext/wadl-doclet |
jersey-spring3 | Spring3支持包 | ext/spring3 |
(6) 测试框架模块
Jersey提供了非常易用和强大的测试框架
模块名称 | 模块说明 | 源代码相对目录 |
jersey-test-frame-core | Jersey核心测试框架 | test-framework/core |
jersey-test-framework-provider-bundle | 测试框架Bundle支持包 | test-framework-providers/bundle |
jersey-test-framework-prodiver-default-client | 测试框架客户端包 | test-framework-providers/default-client |
jersey-test-framework-provider-external | 测试框架拓展容器 | test-framework-providers/external |
jersey-test-framework-grizzly2 | 测试框架Grizzly2容器 | test-framework/providers/grizzly2 |
jersey-test-framework-provider-inmemory | 测试框架内存容器 | test-framework/providers/inmemory |
jersey-test-framework-provider-jdk-http | 测试框架JDK版HTTP容器 | test-framework/providers/jdk-http |
jersey-test-framework-provider-simple | 测试框架简单版HTTP容器 | test-framework/providers/simple |
(7) GlassFish bundle模块
GlassFish Bundle模块是Jersey提供的用于以Bundle方式支持GlassFish服务器的模块,包括CDI和EJB集成的拓展包
关于GlassFish项目
Jersey处于GlassFish生态环境中,GlassFish又是Java EE生态环境的实现描述
和Jersey项目关系紧密的项目
(1) HK2
HK2是轻量级DI架构,实现了IOC和ID的内核,是Jersey实现容器内管理Bean的基础。
(2)Grizzly
Grizzly是一个异步I/O的,高效而健壮的服务器,可以用作HTTP服务器.Servlet容器,支持AJP,Comet,WebSocket
(3)EclipseLink
是JPA2.1的一个实现。JPA2.1的是实现中,最常用的是JBOOS的Hibernate
(4)Metro
是JSR中多个标准的官方实现集,目的是为了实现全栈式的Web Service
(5)Open MQ
JMS2.2的参考实现,简化JMS的API
(6)Mojarra
JSF2的官方实现。全栈式,事件驱动的B/S开发模式框架,包括浏览器端凤舞的小组件,服务器端覆盖JavaEE的各种特征。JSF的另一个是是APACHE的MyFaces。
(7) OpenJDK
开源JDK
其他REST框架
- JBoss的RESTEasy
- APache的CXF
- Reslet
- LinkedIn的Rest.li
- Spring WEB MVC项目