SpringBoot整合Swagger2+定时器

目录

Swagger2简介

1. 什么是Swagger2

2. 为什么使用Swagger2

Springboot整合Swagger2

1. 项目结构

2. swagger2依赖

3 .创建swagger2配置类

4. 开启swagger的注解驱动

5. 访问swagger接口文档

6. swagger2常用注解

SpringBoot整合定时器

1. 定时器简介

2. 引入定时器依赖

3. 创建一个定时业务类

4. 开启定时器注解驱动

5. cron:表达式


Swagger2简介

1. 什么是Swagger2

Swagger 2是一种用于描述RESTful API的规范,它通过JSON格式标准化API的定义,支持自动生成API文档、代码框架,提供交互式测试工具,并允许API版本控制和安全方案的集成,从而提高开发效率和API的可用性。

2. 为什么使用Swagger2

Swagger 2是一个强大的API文档生成和测试工具,它通过标准化的JSON描述格式简化了API的设计、开发和维护过程,提供了自动文档生成、代码框架生成、交互式测试界面以及版本控制等功能,同时支持广泛的编程语言和开发框架,拥有丰富的社区和插件生态,极大地提高了API开发的效率和质量。

Springboot整合Swagger2

首先说一下,本次整合用的SpringBoot版本是2.0,因为SpringBoot3.0整合不了Swagger2,原因是swagger的依赖底层用的是javax依赖包,而spring boot 3.x版本都是jakarta依赖包,一般是把spring boot2.5以下就可以了,但是想要2.5版本以上spring boot启动就会出报错

1. 项目结构

2. swagger2依赖

<!--引入swagger2依赖-->
        <dependency>
            <groupId>com.spring4all</groupId>
            <artifactId>swagger-spring-boot-starter</artifactId>
            <version>1.9.1.RELEASE</version>
        </dependency>
        <!--图形化依赖-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.9.6</version>
        </dependency>

3 .创建swagger2配置类

@Configuration
public class SwaggerConfig {

    //创建swagger实例
    @Bean
    public Docket docket() {
        Docket docket=
                new Docket(DocumentationType.SWAGGER_2)
                        .apiInfo(getInfo())//设置接口文档的信息
                        .select()
                        .apis(RequestHandlerSelectors.basePackage("com.ykq.controller")) //指定为那些路径下得到类生成接口文档
                        .build()
                ;

        return docket;
    }

    private ApiInfo getInfo(){
        Contact DEFAULT_CONTACT = new Contact("李四", "http://www.ldw.com", "110@qq.com");
        ApiInfo DEFAULT = new ApiInfo("用户管理系统API", "该系统中的接口专门操作用户的", "v1.0", "http://www.baidu.com",
                DEFAULT_CONTACT, "与相似", "http://www.jd.com", new ArrayList<VendorExtension>());
        return DEFAULT;
    }
}

4. 开启swagger的注解驱动

5. 访问swagger接口文档

第一种: http://localhost:8080/swagger-ui.html

第二种: http://localhost:8080/doc.html

点击需要测试的接口方法,如图:

查看结果:

6. swagger2常用注解

1. @Api(tags=“”): 使用在接口类上,对接口类的说明
2. @ApiOperation(value=""):接口方法上,对接口方法的说明
3. @ApiImplicitParams(
           @ApiImplicitParam(name=“参数名”,value="参数说明",require="是否必写",dataType="数据类型") 
    ) : 接口方法所有参数的概述
    
4. @ApiModel(value=""): 使用在实体类上,对实体类的说明
5. @ApiModelProperty(value=""):使用在实体类属性上,对属性的说明

SpringBoot整合定时器

1. 定时器简介

定时器到Spring Boot应用中是为了实现自动化的任务调度,提高应用效率,简化开发流程,并通过高度可配置的执行计划满足不同场景的需求。它支持易于测试的代码结构,增强应用的可扩展性,并与Spring生态无缝集成。

2. 引入定时器依赖

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-quartz</artifactId>
        </dependency>

3. 创建一个定时业务类

@Configuration
public class MyQuartzConfig {

    //定时业务代码
    //定义定时规则
    @Scheduled(cron = "0/5 * * * * ?")
    public void show(){
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        //发生短信 或者删除oss冗余文件  或者取消订单
    }
}

4. 开启定时器注解驱动

5. cron:表达式

Cron表达式是一个字符串,用于表达时间和日期的重复模式,通常用于配置定时任务的执行计划。Cron表达式由六个或七个字段组成,每个字段代表一个时间单位。

以下是一些Cron表达式的示例:

  • 0 * * * * ?: 在每个小时的整点执行。
  • 0 0/30 * * * ?: 每隔30分钟执行一次。
  • 0 0 9-17 * * ?: 在每天的上午9点到下午5点之间,每小时的整点执行。
  • 0 0 8,14 * * ?: 每天的上午8点和下午2点执行。
  • 0 0/5 14 * * ?: 在每天下午2点到3点之间,每5分钟执行一次。
  • 0 0-5 14 * * ?: 在每天下午2点开始的前5分钟内,每分钟执行一次。
  • 0 0 9 ? * 1-5: 在每个工作日上午9点执行。

这里是一个生成Cron表达式的网址,个人感觉还不错!

Cron - 在线Cron表达式生成器

相关推荐

  1. springboot3整合swagger

    2024-07-13 12:24:01       47 阅读
  2. spingboot整合Swagger教程

    2024-07-13 12:24:01       57 阅读
  3. springboot引入swagger2

    2024-07-13 12:24:01       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 12:24:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 12:24:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 12:24:01       58 阅读
  4. Python语言-面向对象

    2024-07-13 12:24:01       69 阅读

热门阅读

  1. 益铭祥元宇宙

    2024-07-13 12:24:01       28 阅读
  2. Jupyter Notebook基础:用IPython实现动态编程

    2024-07-13 12:24:01       27 阅读
  3. LCP 61. 气温变化趋势

    2024-07-13 12:24:01       25 阅读
  4. codeforce 954 div3 G2题

    2024-07-13 12:24:01       20 阅读
  5. elk部署springboot

    2024-07-13 12:24:01       25 阅读
  6. 音频筑基:入门50问

    2024-07-13 12:24:01       28 阅读
  7. 永恒之蓝:一场网络风暴的启示

    2024-07-13 12:24:01       30 阅读
  8. TensorFlow系列:第三讲:MobileNetV2使用介绍

    2024-07-13 12:24:01       24 阅读
  9. MySQL上亿数据查询优化:实践与技巧

    2024-07-13 12:24:01       20 阅读
  10. Jetson-AGX-Orin gstreamer+rtmp+http-flv 推拉流

    2024-07-13 12:24:01       20 阅读
  11. Mybatis-Plus最优化持久层开发

    2024-07-13 12:24:01       18 阅读
  12. 389. 找不同

    2024-07-13 12:24:01       21 阅读
  13. Python水平怎么样才能就业?

    2024-07-13 12:24:01       49 阅读
  14. Git: fatal: cannot lock ref‘HEAD‘: Unable to create

    2024-07-13 12:24:01       26 阅读
  15. 大数据学习之 scala基础(补充)

    2024-07-13 12:24:01       24 阅读
  16. Perl中的切分艺术:深入探索split函数的神秘力量

    2024-07-13 12:24:01       22 阅读