SpringBoot基础特性:自定义Banner与Swagger文档
1.SpringBootApplication
1.1自定义banner
- 类路径下添加banner.txt或者设置spring.banner.location就可以定制banner.txt
- 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
- 类路径下添加banner.txt或者设置spring.banner.location就可以定制banner.txt
- 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配置
效果展示: