zoukankan      html  css  js  c++  java
  • Spring Boot的特性: JAX-RS和Jersey

    [

    27.3 JAX-RS和Jersey

    如果你更喜欢JAX-RS为REST端点提供的编程模型,可以使用相应的实现代替Spring MVC。如果将Jersey 1.x和Apache CXF的Servlet或Filter注册到应用上下文中,那它们可以很好的工作。Spring对Jersey 2.x有一些原生支持,所以在Spring Boot中也为它提供了自动配置及一个starter。

    想要使用Jersey 2.x,只需添加spring-boot-starter-jersey依赖,然后创建一个ResourceConfig类型的@Bean,用于注册所有的端点(endpoints):

    @Component
    public class JerseyConfig extends ResourceConfig {
        public JerseyConfig() {
            register(Endpoint.class);
        }
    }
    

    你也可以注册任意数量的,实现ResourceConfigCustomizer的beans来进一步自定义。

    所有注册的端点都需注解@Components和HTTP资源annotations(比如@GET):

    @Component
    @Path("/hello")
    public class Endpoint {
        @GET
        public String message() {
            return "Hello";
        }
    }
    

    由于Endpoint是一个Spring组件(@Component),所以它的生命周期受Spring管理,你可以使用@Autowired添加依赖,也可以使用@Value注入外部配置。Jersey的servlet会被注册,并默认映射到/*,你可以将@ApplicationPath添加到ResourceConfig来改变该映射。

    默认情况下,Jersey将以Servlet的形式注册为一个ServletRegistrationBean类型的@Bean,name为jerseyServletRegistration,该servlet默认会延迟初始化,不过可以通过spring.jersey.servlet.load-on-startup自定义。通过创建相同name的bean,你可以禁用或覆盖框架默认产生的bean。设置spring.jersey.type=filter可以使用Filter的形式代替Servlet,相应的@Bean类型变为jerseyFilterRegistration,该filter有一个@Order属性,你可以通过spring.jersey.filter.order设置。Servlet和Filter注册时都可以使用spring.jersey.init.*定义一个属性集合传递给init参数。

    这里有一个Jersey示例,你可以查看如何设置相关事项。

     

    本文来自:Spring Boot的特性: JAX-RS和Jersey

    ]
    转载请保留页面地址:https://www.breakyizhan.com/springboot/3350.html
  • 相关阅读:
    Python数据结构与算法(几种排序)
    jquery元素节点操作
    Jquery事件委托
    Jquery事件冒泡
    jquery事件
    尺寸相关、滚动事件
    jquery属性操作
    jquery选择器
    JavaScript面向对象
    jQuery powerFloat万能浮动层下拉层插件
  • 原文地址:https://www.cnblogs.com/breakyizhan/p/13282652.html
Copyright © 2011-2022 走看看