如果你更喜欢JAX-RS为REST端点提供的编程模型,你可以使用相应 的 实 现 代 替 Spring MVC 框 架 。Spring Boot 支 持 Jersey1.x 和Jersey2.x,我们这里只介绍Spring Boot对Jersey2.x的支持。
首先,引入Spring Boot针对Jersey的starter包:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jersey</artifactId></dependency>
创建一个ResourceConfig类型的@Bean组件,用于注册所有的端点( Endpoint ) , 可 以 注 册 任 意 数 量 的 , 然 后 实 现ResourceConfigCustomizer的Bean来进一步自定义端点功能。
@Componentpublic class JerseyConfig extends ResourceConfig {public JerseyConfig() {
register(Endpoint.class);
}
}
注 册 的 所 有 端 点 都 需 要 注 解 @Components 和 HTTP 资 源Annotations(比如@GET):
@Component@Path( "/hello")public class Endpoint {@GETpublic String message() {return "Hello";
}
}
Endpoint是一个Spring组件(@Component),它的生命周期受Spring容器管理,你可以使用@Autowired添加依赖,也可以使用@Value注入外部配置。Jersey的Servlet会被注册,并默认映射到/*,你可以将@ApplicationPath添加到ResourceConfig来改变该映射。默认 情 况 下 , Jersey 将 以 Servlet 的 形 式 注 册 为 一 个ServletRegistrationBean类型的@Bean。通过创建相同Name的Bean组件 , 可 以 禁 用 或 覆 盖 框 架 默 认 产 生 的 Bean 。设 置spring.jersey.type=filter可以使用Filter的形式代替Servlet,相应 的 @Bean 类 型 变 为 jerseyFilterRegistration , 该 Filter 有 一 个@Order属性,你可以通过 spring.jersey.filter.order设置。注册Servlet和Filter时都可以使用spring.jersey.init.*定义一个属性集合并传递给init参数。
本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。