范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

SpringBoot3。0集成SpringDoc

  SpringBoot3.0集成SpringDoc1. pom配置2. OpenApi配置类3. 使用4. SpringDoc注解与SpringFox对比5. 演示项目
  这里为什么要使用SpringDoc呢?是因为集成SpringFox只支持SpringBoot2.x,
  而基于Swagger的SpringDoc的社区现在十分活跃,代码也在不断更新。
  SpringFox自从2020年7月14号之后就不更新了。
  YiYi项目学习教程1. pom配置     org.springdoc     springdoc-openapi-starter-webmvc-ui     2.0.2  2. OpenApi配置类
  这里和Swagger配置类似,主要是配置接口的标题、描述、版本信息、Authorizations权限等。
  下面两个分组信息也可以根据项目自身进行配置即可。 import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;  import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.ExternalDocumentation; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; import io.swagger.v3.oas.models.security.SecurityScheme;  /**  * SpringDoc 配置类  *  * @author Jack魏  * @since 2023/1/8 16:51  */ @Configuration public class OpenApiConfig {     /**      * SpringDoc 标题、描述、版本等信息配置      *      * @return openApi 配置信息      */     @Bean     public OpenAPI springDocOpenAPI() {         return new OpenAPI().info(new Info()                         .title("YiYi API")                         .description("YiYi接口文档说明")                         .version("v0.0.1-SNAPSHOT")                         .license(new License().name("YiYi项目博客专栏")                                 .url("https://blog.csdn.net/weihao0240/category_12166012.html")))                 .externalDocs(new ExternalDocumentation()                         .description("码云项目地址")                         .url("https://gitee.com/jack0240/YiYi"))                 // 配置Authorizations                 .components(new Components().addSecuritySchemes("bearer-key",                         new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme("bearer")));     }      /**      * demo 分组      *      * @return demo分组接口      */     @Bean     public GroupedOpenApi siteApi() {         return GroupedOpenApi.builder()                 .group("demo接口")                 .pathsToMatch("/demo/**")                 .build();     }      /**      * sys 分组      *      * @return sys分组接口      */     @Bean     public GroupedOpenApi adminApi() {         return GroupedOpenApi.builder()                 .group("sys接口")                 .pathsToMatch("/sys/**")                 .build();     } } 3. 使用
  可以看到注解的方式和Swagger基本上一模一样,就是名字有所变化而已。 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;  import com.jack.yiyi.bean.SysUser; import com.jack.yiyi.service.sys.SysUserService; import com.jack.yiyi.util.Result;  import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag;   /**  * 系统用户Controller控制类  *  * @author Jack魏  * @since 2022-11-12  */ @Tag(name = "系统用户接口", description = "系统用户接口") @RestController @RequestMapping("/sys/user/") public class SysUserController {     @Autowired     private SysUserService sysUserService;      /**      * 注册后台系统用户      *      * @param sysUser 前端注册信息      * @return 注册用户信息      */     @Operation(summary = "注册接口", description = "输入用户信息进行注册")     @Parameters({             @Parameter(name = "account", description = "登录账号", required = true),             @Parameter(name = "password", description = "密码", required = true)     })     @PostMapping("register")     public Result register(SysUser sysUser) {         // 登录名参数校验         if (sysUser.getAccount() == null || "".equals(sysUser.getAccount())) {             return Result.fail("注册用户名不能为空");         }         // 密码参数校验         if (sysUser.getPassword() == null || "".equals(sysUser.getPassword())) {             return Result.fail("密码不能为空");         }          SysUser user = sysUserService.register(sysUser);         if (user == null) {             return Result.fail("注册失败!请更换登录名!");         }         return Result.success("注册成功,欢迎您:" + sysUser.getAccount());     } }
  通过上面的配置之后,启动项目即可,然后访问:
  http://127.0.0.1:8181/yiyi/swagger-ui/index.html
  因为此项目也配置了Security,所以先输入用户:user、密码:123456
  登录
  SpringDoc
  接口调试
  返回封装对象4. SpringDoc注解与SpringFox对比
  官网地址:https://springdoc.org/v2/#migrating-from-springfox
  SpringFox
  SpringDoc
  作用
  @Api
  @Tag
  在controller类上声明接口
  @ApiIgnore
  @Parameter(hidden = true) 或 @Operation(hidden = true) 或 @Hidden
  接口隐藏
  @ApiImplicitParam
  @Parameter
  单个参数说明
  @ApiImplicitParams
  @Parameters
  多个参数说明
  @ApiModel
  @Schema
  对实体类说明
  @ApiModelProperty(hidden = true)
  @Schema(accessMode = READ_ONLY)
  字段隐藏
  @ApiModelProperty
  @Schema
  实体类字段说明
  @ApiOperation(value = "foo", notes = "bar")
  @Operation(summary = "foo", description = "bar")
  接口方法说明
  @ApiParam
  @Parameter
  单个参数说明
  @ApiResponse(code = 404, message = "foo")
  @ApiResponse(responseCode = "404", description = "foo")
  返回说明  5. 演示项目
  https://gitee.com/jack0240/YiYi
  YiYi项目

1986年,中葡就澳门回归问题谈判,邓公必须在本世纪内解决!文檐前语编辑檐前语你可知Macau,不是我真姓,我离开你太久了,母亲当旋律响起的时候,一件举国同庆的事情正在隆重举行中。1999年12月20日,在澳门文化中心的花园馆,中葡两国正式县委大院4县长嫁给市长,优质资源这样配置有没有效率?梅晓歌当上县长的时候,乔麦是援疆副市长又因为是梅晓歌和乔麦的这对CP中,乔麦居于主导地位,绝对的说一不二。所以与其说乔麦嫁给了梅晓歌,还不如说梅晓歌嫁给了乔麦。这么一琢磨,声称县长FTX创始人将被引渡回美国,面临八大刑事指控面临八大刑事指控的FTX创始人已签署引渡文件,将于明日被引渡回美国。FTX创始人班克曼弗里德于12月19日被护送出巴哈马拿骚的法院。图片来自TristanWheelock彭博社Ge1943年,华罗庚仅用一晚时间破解日军电报密码,挽救昆明几十万人1943年,我军劫获了一份日军的电报,但是专家研究几天无法解开。华罗庚却仅用了一晚,便破解了密码。挽救了昆明的几十万民众的性命。这一天,国民政府兵工署的署长俞大维急冲冲地找到华罗庚在朝鲜战争中,韩国出动最精锐部队,在我军的枪下走了几个回合?韩国首都师在朝鲜战争中,韩军最精锐的就是其首都师了。韩国首都师绰号猛虎师团,该部队的前身是1949年时,李承晚部为保护韩国首都,成立的首都警备司令部。至1950年6月,该部队改编为济南机场海关综合业务科党支部三个精准助力全市跨境电商出口大幅增长大众网海报新闻记者张兴华济南报道近年来,跨境电商作为新兴业态形式,为促进产业结构转型升级提供了新动力,也为政府提升对外开放水平提供了新抓手。今年以来,济南机场海关综合业务科党支部深文采企业说领秀光电用光电编织文化星空轻纱铺陈,海底世界在眼前缓缓展开,伴随着曼妙的音乐,科技解构了宇宙海洋时间与生命,东莞市领秀光电科技有限公司(下称领秀光电)为大家带来了一场震撼的灯光秀。前菜结束后,大秀进入高潮,豫见好人丨高林普30年流水账记录围着母亲转的每一天800侍奉母亲起床,简单整理床铺后,为母亲擦洗身体保持日常清洁,之后清洗母亲换下来的尿垫晾晒被褥。900,重新打来热水为母亲洗脸梳头,紧接着将做好的早饭端来喂母亲吃饭。上午的时光有母亲的苦难童年童年,在每个人看来都有各自不同的童年,七彩童年,欢乐童年,金色童年。童年是每个人都抹不去美好的记忆,直到老去也难以忘怀。我母亲的童年却有个苦难不幸的童年!心酸的童年,以前,望着六十西安市浐灞第三十二小学居家学习有心法线上线下效率高阳光讯(记者张允铎)近日,随着疫情政策的调整,为保证全体师生的健康安全,部分学校再次开启了居家线上学习模式。西安市浐灞第三十二小学第一时间制定线上教学工作方案,组织各年级组教研组线贵州大山里的小学女足老师凑路费打比赛,相信足球改变命运极目新闻记者丁伟李贤诚在地无三尺平的贵州毕节乌蒙山区,有一支成立5年的小学女足球队。因为足球,这些来自山区的小姑娘,意外地打开了另外一条人生通道,有的人被中国足球运动学院录取,还有
丁俊晖剑指第15冠,颜丙涛力争第3冠,威廉姆斯冲英国公开赛2连冠北京时间9月12日消息,2022斯诺克英国公开赛即将开赛,中国一哥丁俊晖再次冲击排名赛第15冠。而大师赛冠军颜丙涛,也将向个人的第3个冠军头衔发起冲击。另外,卫冕冠军金左手马克威廉可怕的冥王星被踢出太阳系行星行列,其实一点也不冤人类非常喜欢给各种天体取名,而这些天体往往也确实星如其名。就拿冥王星来说,这个名字听起来就有点不吉利,也难怪人们会发现它又可怕,又倒霉。恐怖而又神秘的冥王星那么,冥王星到底有多可怕从轨道异常说起,太阳系第九颗行星存在吗当我还小的时候,太阳系有九大行星,但今天却只有八大行星。冥王星于1930年被发现,是太阳系的第九颗行星。但76年后的2006年,它被降级为矮行星,掉出了太阳系行星俱乐部。轨道异常让英媒研究显示世界濒临多个灾难性气候临界点据英国卫报网站9月8日报道,一项重要研究显示,气候危机已令世界濒临多个灾难性临界点。研究显示,由于迄今为止人类活动导致全球气温上升1。1摄氏度,世界濒临五个危险的临界点。其中三个是永动机发电机有什么意义?在现有的基础上,想要达到(永)久动机的效果,至少还有三个技术方面的障碍需要攻克,然而很显然,在现有已经公布的所谓有永动机功能的发明里面连一个也没有完成!看网络里面大家讨论的不亦乐乎浙江最有名的5道菜,号称是浙菜之魂,每一道都是土豪菜浙江素有鱼米之乡美称,作为临海省份之一的它不仅有风景如画的名胜古迹,也必然有鲜美的食材,鱼虾类最盛产。浙江的美食很神奇,既秉承了江南的温婉柔和,又兼顾了一些豪迈奔放。在浙江你可以吃原始时代美利坚分裂国萨尔瓦多丨刊中人原始时代的素食者世界上没有哪个地方可以找到像图林根州的布罗马克化石遗址那样保存如此完好的二叠纪足迹和化石骨骼。研究人员希望利用在那里发现的化石和痕迹探究一些原始恐龙如何变成食草动物关于月亮女神的那些传说来源中国科普网独行月球电影剧照又到一年中秋赏月时,那么关于月亮的故事与想象又有哪些呢?实际上,关于月球的想象是建立在观测月球的基础上的,人类观测月球由来已久。早在公元前450年,古六年了,人们仍没忘记月球上那只兔子9月10日是一年一度的中秋节。距离我们38万公里远的月球上,玉兔二号正在出差,这只中国兔兔是目前在月球上工作时间最长的月球车。三年多的时间里,它拍了不少美图,还对月球地形地貌矿物成大气层消失,原因何在?巨大撞击威力无穷一个异形星球在一次巨大撞击中失去了大气层艺术家对附近的HD17255恒星系统发生的撞击的理解(图源麻省理工大学MarkA。Garlick)一项研究表明,天文学家可能第一次探测到遥远刘小莹等GRL嫦娥五号玄武岩的硫同位素组成及其对月幔源区的制约从古至今,月球一直是人们心中的诗与远方,尤其是在中秋佳节,对皎皎明月的赞美更是不甚枚举。皓魄当空宝镜升,云间仙籁寂无声平分秋色一轮满,长伴云衢千里明。是宋代诗人李朴在中秋赏月时发出