美文网首页
准备篇-与SpringBoot不同

准备篇-与SpringBoot不同

作者: jimmyz81 | 来源:发表于2022-10-13 14:32 被阅读0次

    对标准的支持

    由于标准的滞后性,Spring与标准部分不完全一致,有部分内容是Spring自己实现的。

    比如CDI部分
    Spring使用Autowired,包名是org.springframework.beans.factory.annotation,是Spring私有实现
    Quarkus使用Inject,包名是javax.inject,是javax的标准实现
    *Quarkus使用CDI标准(实现大部分规范),为了使用GraalVM构建原生执行文件,Quarkus鼓励用户不要在Bean中使用私有成员。

    比如REST部分
    Quarkus使用JAX-RS

    对响应式支持

    Spring相对滞后,需要Spring WebFlux
    Quarkus原生支持,通过Vert.x底层支持

    对GraalVM支持

    Spring相对滞后,需要Spring Native
    Quarkus原生支持,通过GraalVM底层支持

    对容错的支持

    包括重试,超时,熔断,
    Spring需要其他组件支持
    Quarkus原生支持

    Quarkus特色

    支持多种打包方式,比如:fast-jar,uber-jar,native,在application.properties中通过quarkus.package.type=[fast-jar|uber-jar]指定打包方式

    fast-jar: 编译后的jar仅包含了项目编译的类和资源文件,是不可执行的jar,quarkus-app 目录中包含了可执行的 jar文件quarkus-run.jar,依赖库都位于 lib目录中
    uber-jar: 编译后只有一个jar,可以直接运行

    关于注解

    JAX-RS是Java API for RESTful Web Services,JAX-RS提供了一些注解将一个资源类,一个POJO Java类,封装为Web资源。

    REST URL通用格式<http>://<host>:<port>/<path>?<query>#<frag>

    [JAX-RS ]@Path,标注资源类或者方法的相对路径

    [JAX-RS     ]@PathParam,从<path>中获取参数,支持正则,URL的路径
    [SPRING    ]@PathVariable
    [QUARKUS]@PathParam,@RestPath

    [JAX-RS     ]@QueryParam,从<query>中获取参数,URL的查询参数
    [SPRING    ]@RequestParam
    [QUARKUS]@QueryParam,@RestQuery

    [JAX-RS     ]@HeaderParam,从<header>中获取参数,HTTP请求的头信息
    [SPRING    ]@RequestHeader
    [QUARKUS]@HeaderParam,@RestHeader

    [JAX-RS     ]@CookieParam,从<cookie>中获取参数,HTTP请求的Cookie
    [SPRING    ]@CookieValue
    [QUARKUS]@CookieParam,@RestCookie

    [JAX-RS     ]@MatrixParam,从<http>中获取参数
    [SPRING    ]@MatrixVariable
    [QUARKUS]@MatrixPara,@RestMatrix

    [JAX-RS     ]@FormParam,从<form>中获取参数
    [SPRING    ]@ModelAttribute
    [QUARKUS]@FormParam,@RestForm

    *quarkus对应注解分别是普通请求和reactive请求
    普通请求包:org.jboss.resteasy.annotations.jaxrs
    响应式包:org.jboss.resteasy.reactive

    @GET,@PUT,@POST,@DELETE,标注方法是HTTP请求的类型。
    @Produces,标注返回的MIME媒体类型
    @Consumes,标注可接受请求的MIME媒体类型

    相关文章

      网友评论

          本文标题:准备篇-与SpringBoot不同

          本文链接:https://www.haomeiwen.com/subject/djsnwrtx.html