jersey1.X与jersey2.X的区别

本文介绍如何使用Jersey 2.x进行部署,包括使用web.xml配置Servlet容器、扫描资源的方式、@WebServlet注解的应用、@ApplicationPath注解的使用以及通过web.xml指定Application实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在数字化转型的浪潮中,高效、灵活且可扩展的 API 设计已成为软件系统的核心需求。RESTful 架构风格凭借其简洁性、无状态性和资源导向的特性,成为现代 Web 服务开发的事实标准。而作为 JAX-RS 的参考实现,Jersey 框架为 Java 开发者提供了一套强大且易用的工具,帮助快速构建高性能的 RESTful 服务。


一、jersey是什么

Jersey 是一个开源的 Java RESTful Web 服务框架,基于 JAX-RS(Java API for RESTful Web Services) 规范实现,由 Eclipse 基金会维护。它简化了 RESTful API 的开发,提供了注解、依赖注入(DI)、客户端 API 等特性,支持 JSON、XML 等多种数据格式,并能轻松集成 Spring、Hibernate 等主流框架。

二、区别汇总

1.servlet容器

web.xml加载jersey的servlet容器

jersey1.Xjersey2.X
servlet容器com.sun.jersey.spi.Container.servlet.ServletContainerorg.glassfish.jersey.servlet.ServletContainer

2.扫描resource

jersey1.Xjersey2.X
resourcecom.sun.jersey.config.property.packagesjersey.config.server.provider.packages

3. 支持@WebServlet

jersey2.X可以使用servlet3的 @WebServlet扫描jersey resource。不需要特别配置web.xml

例如:


import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import org.glassfish.jersey.servlet.ServletContainer;

@WebServlet(initParams = @WebInitParam(name = "jersey.config.server.provider.packages", value = "com.example"), urlPatterns = "/webapi/*", loadOnStartup = 1)
public class AirServlet extends ServletContainer {
	private static final long serialVersionUID = 1L;
}

4.@ApplicationPath注解

jersey2.X可以使用@ApplicationPath注解,加载jersey resouce。
例如:


@ApplicationPath("/webapi/*")
public class AirApplication extends Application {
	@Override
	public Set<Class<?>> getClasses() {
		final Set<Class<?>> classes = new HashSet<Class<?>>();
		classes.add(MyResource.class);
		return classes;
	}
}

5.Application加载

jersey2.X可以使用web.xml加载Application

   <servlet>
		<servlet-name>Jersey Web Application</servlet-name>
		<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
		<init-param>
			<param-name>javax.ws.rs.Application</param-name>
			<param-value>com.example.RestApplication</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Jersey Web Application</servlet-name>
		<url-pattern>/webapi/*</url-pattern>
	</servlet-mapping>

总结

Jersey 作为 JAX-RS 的标杆实现,通过标准化注解和模块化设计,显著降低了 RESTful API 的开发复杂度。它不仅简化了资源定义、请求映射和响应处理,还通过过滤器、依赖注入等机制支持企业级需求。无论是构建轻量级微服务还是复杂业务系统,Jersey 都能提供可靠的技术支撑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kse_music

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值