当前位置: 首页 > news >正文

SpringBoot基础特性:自定义Banner与Swagger文档

1.SpringBootApplication

1.1自定义banner

  1. 类路径下添加banner.txt或者设置spring.banner.location就可以定制banner.txt
  2. banner定制网站:
  • Spring Boot banner在线生成工具,制作下载英文banner.txt,修改替换banner.txt文字实现自定义,个性化启动banner-bootschool.net
  • Online Ascii Art Creator

1.2自定义SpringApplication

@MapperScan(basePackages= "com.mytest01.mapper")
@SpringBootApplication
public class Mytest01Application {public static void main(String[] args) {//        SpringApplication.run(Mytest01Application.class, args);// 自定义SpringApplication application = new SpringApplication(Mytest01Application.class);// 这个配置优先级弱于配置application.setBannerMode(Banner.Mode.CONSOLE);// 运行applicationapplication.run(args);}}

1.3属性配置

内部配置

属性配置优先级排序:

外部配置

总结

项目查找配置文件顺序

规律:最外层的最优先。

命令行 >所有

包外>包内

config目录>根目录

profile > application配置不同就都生效(部署),配置相同高优先级覆盖低优先级

导入配置

属性占位符

2.swagger-ui接口文档

引入依赖:

<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.1.0</version>
</dependency>

从Maven 3.8.1开始,不再支持http的包了。由于现在对网络安全的日益重视,都在向https转变。毕竟https会更加安全。所以我这里将maven版本改成了3.6.3的版本

maven3旧版本下载链接:

Index of /dist/maven/maven-3

启动项目后直接进入网页:

http://localhost:8088/swagger-ui.html

1.常用注解

@TAG 接口类注解

//给接口加上注释
@Tag(name = "微博热搜",description = "获取微博热搜")

@Parameter 参数注解

对传入的参数进行注解

@Operation

@Operation(description = "根据员工id获取员工信息",summary = "查询指定员工信息")

效果展示:

@Schema

在javabean中进行配置,对属性进行描述

@Schema(title = "返回结果")
public class Result {//    返回的操作码,数据,以及信息// 1 成功 0失败@Schema(title = "状态码")private Integer code;@Schema(title = "返回信息")private String msg;@Schema(title = "返回数据")private Object data;
}

效果:

2.Docket配置

如果有多个docket,配置如下:

@Configuration
public class ApiUiConfig {@Beanpublic GroupedOpenApi webtopApi(){//匹配所有以webtop开始的请求return GroupedOpenApi.builder().group("微博热搜").pathsToMatch("/webtop/**").build();}@Beanpublic GroupedOpenApi loginApi(){//匹配所有以text开始的请求return GroupedOpenApi.builder().group("登陆请求").pathsToMatch("/test/**").build();}
}

效果展示:

可以讲不同类型的接口区分开来

3.openApi配置

效果展示:

 

1.SpringBootApplication

1.1自定义banner

  1. 类路径下添加banner.txt或者设置spring.banner.location就可以定制banner.txt
  2. banner定制网站:
  • https://www.bootschool.net/ascii
  • https://www.ascii-art-generator.org/

1.2自定义SpringApplication

@MapperScan(basePackages= "com.mytest01.mapper")
@SpringBootApplication
public class Mytest01Application {public static void main(String[] args) {//        SpringApplication.run(Mytest01Application.class, args);// 自定义SpringApplication application = new SpringApplication(Mytest01Application.class);// 这个配置优先级弱于配置application.setBannerMode(Banner.Mode.CONSOLE);// 运行applicationapplication.run(args);}}

1.3属性配置

内部配置

属性配置优先级排序:

外部配置

总结

项目查找配置文件顺序

规律:最外层的最优先。

命令行 >所有

包外>包内

config目录>根目录

profile > application配置不同就都生效(部署),配置相同高优先级覆盖低优先级

导入配置

属性占位符

2.swagger-ui接口文档

引入依赖:

<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.1.0</version>
</dependency>

从Maven 3.8.1开始,不再支持http的包了。由于现在对网络安全的日益重视,都在向https转变。毕竟https会更加安全。所以我这里将maven版本改成了3.6.3的版本

maven3旧版本下载链接:

https://archive.apache.org/dist/maven/maven-3/

启动项目后直接进入网页:

http://localhost:8088/swagger-ui.html

1.常用注解

@TAG 接口类注解

//给接口加上注释
@Tag(name = "微博热搜",description = "获取微博热搜")

@Parameter 参数注解

对传入的参数进行注解

@Operation

@Operation(description = "根据员工id获取员工信息",summary = "查询指定员工信息")

效果展示:

@Schema

在javabean中进行配置,对属性进行描述

@Schema(title = "返回结果")
public class Result {//    返回的操作码,数据,以及信息// 1 成功 0失败@Schema(title = "状态码")private Integer code;@Schema(title = "返回信息")private String msg;@Schema(title = "返回数据")private Object data;
}

效果:

2.Docket配置

如果有多个docket,配置如下:

@Configuration
public class ApiUiConfig {@Beanpublic GroupedOpenApi webtopApi(){//匹配所有以webtop开始的请求return GroupedOpenApi.builder().group("微博热搜").pathsToMatch("/webtop/**").build();}@Beanpublic GroupedOpenApi loginApi(){//匹配所有以text开始的请求return GroupedOpenApi.builder().group("登陆请求").pathsToMatch("/test/**").build();}
}

效果展示:

可以讲不同类型的接口区分开来

3.openApi配置

效果展示:

 

http://www.dtcms.com/a/269687.html

相关文章:

  • houdini云渲染和云解算新选择
  • 易境通海运系统:赋能海运企业全链路数字化运营!
  • 【Note】《Kafka: The Definitive Guide》第11章:Stream Processing
  • BERT代码简单笔记
  • C#中封装halcon函数的报错
  • 代码详细注释:C语言实现控制台用户注册登录系统
  • Google AI 刚刚开源 MCP 数据库工具箱,让 AI 代理安全高效地查询数据库
  • 前后端分离(java) 和 Nginx在服务器上的完整部署方案(redis、minio)
  • JxBrowser 7.43.4 版本发布啦!
  • 人工智能驱动下的可再生能源气象预测:构建绿色能源时代的新大脑
  • 微服务化采集平台:可扩展性与容错机制
  • 相机Camera日志实例分析之五:相机Camx【萌拍闪光灯后置拍照】单帧流程日志详解
  • AiPy实战:问界汽车交付速度破纪录的背后是什么?
  • Vue的初步学习
  • 146.在 Vue3 中使用 OpenLayers 地图上 ECharts 模拟飞机循环飞行
  • OS学习笔记
  • B站视频下载器 Bili23-Downloader v1.63.1 绿色版
  • LLMs之DeepSeek:AI模型市场深度分析:DeepSeek的挑战与机遇,模型市场份额、Token经济学与未来发展
  • 力扣 239 题:滑动窗口最大值的两种高效解法
  • 【python】 time_str = time_str.strip() 与 time_str = str(time_str).strip() 的区别
  • 基于物联网的智能交通灯控制系统设计
  • 使用 Docker 搭建 Java(SpringBoot)开发环境——AI教你学Docker
  • 零基础|宝塔面板|frp内网穿透|esp32cam远程访问|微信小程序
  • 电商业务是如何防护DDoS攻击的?
  • 2563、统计公平数对的数目
  • ElasticSearch集群状态查询及_cat 命令详解
  • JDBC 获取新增行主键值详解
  • 向量与向量组的线性相关性 线性代数
  • 【Android】搭配安卓环境及设备连接
  • 17-C#的socket通信TCP-1