Spring boot crud 和 swagger使用

SpringBoot整合MyBatis-Plus实现CRUD 1.整合 1.1创建maven工程,添加依赖。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http 阅读详情

spring boot swagger

上一节 Spring boot logging

Spring boot logging

源码地址

https://gitee.com/mayun_xiaodu/spring-boot-all


正文

swagger快速上手

  • spring boot 集成
    1. pom依赖
 <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

2. swagger配置类

@Configuration
@EnableSwagger2
public class Swagger2Config {
    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .enable(true)
                .apiInfo(new ApiInfoBuilder()
                        .description("swagger-test")
                        .version("1.0")
                        .title("swagger-title")
                        .contact(new Contact("xiaodu", "http://www.baidu.com", "xiaoduup@aliyun.com"))
                        .build())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.xiaodu.swagger"))
                .paths(PathSelectors.any())
                .build();
    }

}

@EnableSwagger2  开启swageer
DocumentationType.SWAGGER_2 指定使用swagger2,
description  api文档描述
version 版本
title  文档标题
contact  作者联系信息
 basePackage 扫描使用了swagger的包;

swagger 注解doc描述使用

swagger 常用注解描述
## controller 层使用
  @Api: 标注在controller 类上;表示对整个类对应的资源文档说明
          (属性)
          - String  value 已经废弃,推荐使用 tags
          - String[] tags api文档标签,对应ui上的资源名称,默认会使用类名
          - String produces  服务器返回的mediaType
          - String consumes 服务器接收的mediaType
          - boolean hidden  是否隐藏资源
      
       @ApiOperation:标注在请求方法上,表示对请求方法的
          - String value  对请求的简单描述
          - String notes 对请求的详细描述
          - String[] tags 对应@Api的tags ;属于那个 @api
          - Class<?> response  响应类型
          - httpMethod  请求方法 GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS" and "PATCH".
          - produces  服务器返回的mediaType
          - consumes 服务器接收的mediaType
          - boolean hidden  是否隐藏资源
          
           @ApiParam
             - name 参数名称
             - value 参数描述
             - defaultValue 默认值
             - allowableValues 参数允许的值
             - required 参数是否必需
             - example  示例
             - type 参数类型
             - allowEmptyValue 是否允许空值
             - 
       @ApiResponses : 返回可能的一组响应
           @ApiResponse
               -  code  响应code码
               - message 响应描述信息
               - response 响应类型
               - responseHeaders  响应头
       
       @ApiImplicitParams: 一组对请求参数的描述
           @ApiImplicitParam :对请求参数的描述;当请求参数不是一个可描述的时候使用 同@ApiParam 作用一样
               - name 参数名称
               - value  参数描述
               - dateTypeClass 参数类型
               - paramType  参数的参数类型的位置;  可选值 path, query, body, header,  
               - type 参数类型
     ## 实体bean使用
    @ApiModel
          - value  模型的备用名称
          - description  模型的详细描述
        
       @ApiModelProperty
            - value 对属性的简要描述
            - name 文档中属性的名称
            - required 是否必需
            - example 属性值的示例
    
      (以上只是简单对常用的注解和属性进行了描述,代码中有使用示例)

1. 使用swagger对实体bean描述

@ApiModel(description = "订单实体bean")
public class OrderEntity {

    @ApiModelProperty(value = "订单编号")
    private String id;

    @ApiModelProperty(value = "订单名称")
    private String name;

    @ApiModelProperty(value = "订单创建时间")
    private Date createTime;
...
  • @ApiModel标注在实体类上进行描述
  • @ApiModelProperty 对字段进行描述

2. 使用swagger对请求api描述
以下是一个完整的 crud 操作的controller; 并且添加了swagger文档描述

@RestController
@RequestMapping(value = "/test")
@Api(tags = "test-订单操作")  // 标注为swagger的一个资源
public class OrderController {

    private static final Logger log = LoggerFactory.getLogger(OrderController.class);
    
// get 请求
    @ApiOperation(value = "订单查询", notes = "根据orderId查询订单信息", httpMethod = "GET") // 对请求的表述
    @ApiResponses({  // 对可能返回的结果response描述
            @ApiResponse(code = 200, message = "ok"),
            @ApiResponse(code = 500, message = "error")
    })
    @GetMapping("/order")
    public ResultBean<OrderEntity> getName(
            @ApiParam(name = "orderId", value = "订单编号", required = true) @RequestParam String orderId) throws Exception {
        OrderEntity orderEntity = new OrderEntity();
        orderEntity.setId(orderId);
        orderEntity.setCreateTime(new Date());
        orderEntity.setName("xiaomi 11");
        return ResultBean.success(orderEntity);
    }


// post 请求
    @ApiOperation(value = "添加订单", httpMethod = "POST")
    @PostMapping("/order")
    public ResultBean<Void> addOrder(@RequestBody OrderEntity orderEntity) throws Exception {
        log.warn("添加 order = {}", orderEntity);
        return ResultBean.success(null);
    }

// put 请求
    @ApiOperation(value = "更新订单", notes = "根据orderId更新订单信息并返回更新后的订单信息", httpMethod = "PUT")
    @PutMapping("/order")
    public ResultBean<OrderEntity> updateOrder(@RequestBody OrderEntity orderEntity) throws Exception {
        log.warn("update order = {}", orderEntity);
        return ResultBean.success(orderEntity);
    }

// delete 请求
    @ApiOperation(value = "删除订单", httpMethod = "DELETE")
    @DeleteMapping("order/{orderId}")
    public ResultBean<Void> delOrder(@ApiParam(value = "订单编号")@PathVariable String orderId) {
        log.warn("delete orderId = {}", orderId);
        return ResultBean.success(null);
    }

//get 请求; ApiImplicitParam 使用场景
    @ApiOperation(value = "test-ApiImplicitParam", httpMethod = "GET", response = String.class)
    @ApiImplicitParams({  // 对请求参数的描述;当请求参数不是一个可描述的时候使用 同@ApiParam 作用一样
            @ApiImplicitParam(name = "name", value = "名称", dataTypeClass = String.class, paramType = "query"),
            @ApiImplicitParam(name = "age", value = "年龄", dataTypeClass = Integer.class, paramType = "query")
    })
    @GetMapping(value = "/str", consumes = MediaType.ALL_VALUE)
    public String getStr(HttpServletRequest request, HttpServletResponse response) throws Exception {
        return "name = " + request.getParameter("name") + ", age = " + request.getParameter("age");
    }

}

API描述文档

启动项目后;访问localhost:8080/swagger-ui.html ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210330210744598.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9kdWphdmE=,size_16,color_FFFFFF,t_70) 随便点开一个 文档即可看到详细的文档描述; 可以进行模拟http请求; ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210330210842762.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9kdWphdmE=,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210330210935922.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9kdWphdmE=,size_16,color_FFFFFF,t_70)

下一节 Spring boot 参数校验

Spring boot 参数校验

LLM网关架构设计与生产化实践:流量治理与成本控制关键权衡 API网关作为微服务架构中的流量调度与控制层,在AI工程实践中被进一步演化为面向大模型场景的LLM网关。它并非模型推理服务,而是统一模型接入、路由转发、负载均衡、限流熔断、缓存与成本统计的基础设施组件。当业务从原型走向生产,模型调用的碎片化、稳定性缺失、成本失控与密钥安全等问题集中暴露,网关便成为解决流量治理与系统韧性的核心环节。其架构设计需严格分离数据平面与控制平面,优先保证无状态、可水平扩展,并兼容OpenAI Chat Completions协议以适配主流生态。同时,在缓存命中率与语义灵活性、同步转发 阅读详情

相关推荐

springboot整合vue 实现CRUD | Spring Boot 18

最近在学习Spring Boot + Vue的整合,通过尚硅谷的一个谷粒学院项目进行练习。 一、课程介绍 系统后端接口部分,使用目前流行的SpringBoot+SpringCloud进行微服务架构,使用Feign、Gateway、Hystrix,以及阿里巴巴的Nacos等组件搭建了项目的基础环境。项目中还使用MyBatisPlus进行持久层的操作,使用了OAuth2+JWT实现了分布式的访问,项目中整合了SpringSecurity进行了权限控制。除此之外,项目中使用了阿里巴巴的EasyExcel实..

学Java,找哪吒 6596

SpringBoot的CRUD

目录 自动装配的原理 Pom.xml文件 启动器 Thmeleaf的介绍 WebJars 使用springboot实现CRUD操作 项目结构 依赖引入 加入自定义过滤器类 Controller 使用lombok创建实体类 业务层的实现类 前端html使用了Thymeleaf模版引擎 添加界面add.html 数据展示界面list.html 展示 自动装配的原理 Pom.xml文件 Spring-boot-dependencies:核心依赖在父工程中 我

qq_40629019的博客 3746

springboot实现crud

springboot 工程 使用jpa实现增删改查 集成thymeleaf 支持国际化 增加登录拦截器 增加公共代码抽取 增加docker支持

springboot 整合mybaits实现crud操作(含分页)案例

一.目的 通过springboot和mybaits整合实现数据的简单crud操作。 常规操作:client的请求-----》controller-----》services-------》dao层----》dao的实现层java类,实现具体的crud操作 此项目的操作:client的请求-----》controller-----》services-------》dao层----》mapper...

健康平安的活着的专栏 1582

Verilog实现SPI通信协议驱动设计

线性序列机实现SPI协议

H19981118的博客 6084

C#上位机与OneNET云平台数据交互实战——基于HTTP与JSON解析

本文详细介绍了使用C#开发上位机软件与OneNET物联网云平台进行数据交互的实战方法。通过构建HTTP请求、解析JSON数据,实现设备数据的实时获取、界面展示与本地存储,为工业监控与数据采集提供了一套完整高效的C#解决方案。

kkk56的博客 218

springboot之swagger:swagger的默认访问地址

1.默认的访问地址 http://localhost:端口/swagger-ui.html; 2.如果配置文件中:context-path:/目录 http://localhost:端口/目录/swagger-ui.html

WatermelonMk的博客 2万+

几款常见存储系统的对比分析

如何对比选择存储系统?本文给你答案!本文将详细对比NetApp、Lsilon、Vast Data、DDN lustre和WekaFS的五个存储系统的简单性、速度、规模及标准。

hongcloudtech的博客 1678

springboot整合mybatis-plus实现CRUD

1.什么是springboot SprungBoot是一个快速整合第三方框架,简化xml配置完全采用注解化,内置Http服务器(如:Jetty和Tomcat),最终是以java应用程序进行执行。之前Web项目,变成War包放入TomcatWebApps进行解压运行。 2.为什么要使用SpringBoot框架 咱们来看看下面这张图, 这是一个传统SSM项目的整合,分整合数据库访问层,...

sdgames的博客 1004

从流体力学到深度学习:手把手教你用PINN预测涡流场(基于TensorFlow2.10+GPU)

本文详细介绍了如何利用物理信息神经网络(PINN)结合TensorFlow 2.10和GPU加速,预测Navier-Stokes方程的涡流场。通过核心原理讲解、实战环境配置、网络架构设计及物理约束实现,帮助读者掌握从流体力学到深度学习的跨学科技术应用,特别适合处理复杂流体问题和非定常流动场景。

weixin_29048309的博客 211

Zabbix故障排查10051端口无法启动:zabbix-server.service: main process exited, code=exited, status=1/FAILURE

zabbix-server.service: main process exited, code=exited, status=1/FAILURE报错说与数据库失去连接。

" DevOps菜鸟(Xu JieHao)" 的博客 2255

springboot整合swagger2实现数据的crud

springboot整合swagger2实现数据的crud

塘枫蒲的博客 283

Cadence Design Entry HDL 使用教程

Cadence Design Entry HDL 使用教程 前言 cadence Design Entry HDL是cadence内部集成的一款板级的EDA设计工具,早期叫 concept HDL。其为cadence最早的原配板级电路图绘制工具,只不过由于后来cadence收购了orcad然后就将旗下的capture CIS收入其中,由于后者使用起来上手简单,所以后者更为大家所熟知。虽然大家对...

uio159753的博客 4万+

4.Spring Boot 的Web开发

springboot与web开发

m0_67142531的博客 1869

飞牛fnNAS虚拟机标准安装

飞牛NAS是一款基于Debian开发的国产免费NAS系统,支持x86架构设备,可将闲置硬件改造为NAS服务器。系统安装简便,支持多种存储模式与硬盘休眠功能,具备智能影视管理、照片备份等实用功能,并提供多种远程访问方式。飞牛NAS还支持Docker扩展,目前已承诺永久免费。文章详细介绍了在VMware虚拟机中安装飞牛NAS的步骤,包括下载镜像、创建虚拟机、初始化设置等过程,并展示了创建共享文件夹等基本操作,帮助用户快速上手这款功能强大的免费NAS系统。

dgnankai的专栏 3254

LabVIEW实现TCP通信

在本节中,我们将简要探讨TCP通信的基础知识,并以工业物联网平台TLINK中的云端设备数据发布设计为例,详细阐述在互联网环境下TCP客户端应用程序设计的基本方法。

不脱发的程序猿 1959

使用Spring Rest和Spring Data JPA和H2以及Spring Boot示例的Restful API

你好朋友, 在本教程中,您将学习以下内容: 1.在Spring Boot中配置Spring Rest,Spring Data JPA和H2 2.使用Spring Boot创建Springful服务端点的Spring Rest,Spring Data JPA和H2的示例 3.使用Swagger测试Restful端点 1.在Spring Boot中配置Spring Rest,Spr...

最佳 Java 编程 245

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

菜鸟上路 Spring Boot+Spring data jpa+swagger 做的增 删 改 查

1 .数据库用的是mysql 数据库,项目整体结构如下,项目中Hystrix和Eureka可以看看,新手不晓得怎么上传项目文件 研究下后续给补上 2.用的maven 这里贴出maven 的pom配置     4.0.0     southernfund     ws     1.1     jar           org.springframework.boot

WANGANG 2008

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

如何用 Spring-Boot-Plus 在5分钟内完成CRUD开发

Spring-Boot-Plus 是一款简单易用、高速高效、功能丰富的开源 Spring Boot 脚手架,能帮助开发者快速构建企业级应用。本文将详细介绍如何利用 Spring-Boot-Plus 的代码生成功能,在短短5分钟内完成 CRUD 开发,让你专注于业务逻辑而非重复编码。 ## 为什么选择 Spring-Boot-Plus 进行 CRUD 开发 Spring-Boot-Plus 提供

gitblog_00535的博客 393

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

从零搭建一个基于Spring Boot的RESTful API服务

curl -X POST -H "Content-Type: application/json" -d '{"username":"张三","email":"zhangsan@example.com"}' http://localhost:8080/api/users。2. Postman:发送HTTP请求(如POST http://localhost:8080/api/users,请求体为JSON:{"username":"test","email":"test@example.com"})。

2501_93214848的博客 1204

GHelper 轻量接管:1 个 exe 的华硕笔记本性能管理工具,把风扇和电池还给你

电池天天被充到 100%,风扇空转时突然狂转,卸载了官方控制中心,进程又一个个冒回来——问题不在硬件,在那套出厂预装的服务。GHelper 是华硕笔记本的轻量控制工具:单个 exe 接管性能模式、显卡切换、风扇曲线和电池充电限制,不在系统里安装任何东西。 [![GHelper 华硕笔记本性能模式与风扇曲线设置界面截图](https://raw.gitcode.com/GitHub_Trendin

gitblog_00846的博客 922

springbootmybatis crud

1.页面测试文件 @Configuration @EnableSwagger2 public class MySwagger2 { @Bean public Docket createRestApi(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(Re..

leezsj的博客 196

swagger java_swagger使用指南

package com.youjia.swagger.controller;import com.youjia.swagger.constants.CommonConstants;import com.youjia.swagger.model.Film;import com.youjia.swagger.model.ResultModel;import com.youjia.swagger.ser...

weixin_29711757的博客 280

用快马 AI 一键生成 @jsonfield 注解代码:Spring Boot 开发提速 50%

创建User类时,通过注解指定字段映射规则。例如:- 将userName映射为 JSON 中的username- 忽略敏感字段如password在序列化时的输出- 为可能为空的字段设置默认值。

CyanWave34的博客 351

spring-boot+quartz的CRUD动态任务管理系统

版权声明:作者: 小柒 出处: https://blog.52itstyle.com 分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。 https://blog.youkuaiyun.com/zhulin2012/article/details/79799874 spring-boot-quartz 基于spring-bo...

xiang__liu的博客 775

Spring Boot项目集成代码生成器全攻略,快速打通CRUD开发任督二脉

快速掌握Spring Boot代码生成技巧,详解Java代码生成工具在CRUD开发中的高效集成方法,涵盖模板配置、自定义生成规则与自动化实践。显著提升开发效率,减少重复编码,值得收藏。

ProcePerch的博客 1064
上一篇: Spring boot logging
下一篇: Spring boot 参数校验
xiaoduup
博客等级 码龄9年 23粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值