SpringBoot Web服务-部分初始配置
在这篇文章中,我们将探索如何在 Spring Boot 应用程序中配置 OpenAPI,并添加从根 URL 到 Swagger UI 的便捷重定向。此设置将改进您的 API 文档并使其更易于开发人员访问。
OpenAPI Bean 配置
首先,让我们创建一个配置类来自定义我们的 OpenAPI 文档:
import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; import org.springframework.boot.info.GitProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OpenAPIConfig { @Bean public OpenAPI customOpenAPI(GitProperties gitProperties) { return new OpenAPI() .info(new Info() .title("Book Catalog API") .description("REST API for managing a book catalog. Application version: "+ gitProperties.get("build.version")) .version("1.0.0") .contact(new Contact() .name("Book Catalog Team") .email("support@bookcatalog.com") .url("https://github.com/vlaship/book-catalog")) .license(new License() .name("MIT License") .url("https://opensource.org/licenses/MIT")) ); } }
此配置创建一个自定义 OpenAPI bean,其中包含有关您的 API 的基本信息。您可以通过添加更多详细信息(例如联系信息、许可证或外部文档)来进一步自定义。
我们可以使用 GitProperties 来提供更多详细信息。
根 URL 重定向控制器
接下来,让我们创建一个控制器来将用户从根 URL 重定向到 Swagger UI:
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class OpenApiController { @GetMapping("/") public String index() { return "redirect:swagger-ui.html"; } }
这个简单的控制器使用 @GetMapping 作为根 URL(“/”)并重定向到 Swagger UI HTML 页面。
更新 application.yaml
此配置文件通常名为 application.yml,在定义应用程序行为的各个方面起着至关重要的作用。
spring: application: name: book-catalog version: '@project.version@' mvc: problemdetails: enabled: true management: endpoints: web: exposure: include: '*' info: git: mode: full server: port: 8888 servlet: context-path: /${spring.application.name} error: whitelabel: enabled: false
提供的 YAML 配置涵盖了 Spring Boot 应用程序的几个关键领域:
- 应用程序属性:
name:定义应用程序的名称,这里设置为 book-catalog。
版本:引用可能在构建过程中填充的占位符,以指定应用程序的版本。
- MVC 配置:
problemdetails.enabled:在异常响应正文中启用详细问题报告。
- 管理端点:
endpoints.web.exposure.include: '*':** 公开所有执行器端点以用于监视和管理目的。
info.git.mode: full:在 /info 端点中提供详细的 Git 信息。
- 服务器配置:
port:设置服务器监听传入请求的端口(默认8080,这里设置为8888)。
servlet.context-path:定义应用程序的上下文路径,确保请求正确路由。
error.whitelabel.enabled: false:禁用默认的白标签错误页面,以便在开发过程中提供更多信息性错误消息。
添加banner.txt
1。创建banner.txt文件
在 Spring Boot 项目的 src/main/resources 目录中创建一个名为 Banner.txt 的新文件。
2。将服务详细信息添加到banner.txt
您可以将任何文本或 ASCII 艺术添加到此文件中。这是一个例子:
import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; import org.springframework.boot.info.GitProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OpenAPIConfig { @Bean public OpenAPI customOpenAPI(GitProperties gitProperties) { return new OpenAPI() .info(new Info() .title("Book Catalog API") .description("REST API for managing a book catalog. Application version: "+ gitProperties.get("build.version")) .version("1.0.0") .contact(new Contact() .name("Book Catalog Team") .email("support@bookcatalog.com") .url("https://github.com/vlaship/book-catalog")) .license(new License() .name("MIT License") .url("https://opensource.org/licenses/MIT")) ); } }
这种方法为您的应用程序启动增添了专业感,并一目了然地提供有价值的信息。
添加 Dockerfile
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class OpenApiController { @GetMapping("/") public String index() { return "redirect:swagger-ui.html"; } }
图层提取:为依赖项创建单独的图层,提高构建效率并减少图像大小更新。
多阶段构建:利用多阶段构建过程将构建环境与运行时环境分开,从而产生更小、更高效的最终图像。
轻量级基础镜像: 使用像 azul/zulu-openjdk-alpine:21-jre-headless 这样的最小基础镜像来进一步减小镜像大小。
这种方法可以加快 Docker 容器内 Spring Boot 应用程序的构建速度、缩小镜像大小并提高整体性能。
以上是SpringBoot Web服务-部分初始配置的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

公司安全软件导致部分应用无法正常运行的排查与解决方法许多公司为了保障内部网络安全,会部署安全软件。...

系统对接中的字段映射处理在进行系统对接时,常常会遇到一个棘手的问题:如何将A系统的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架进行数据库操作时,经常需要根据实体类的属性名构造查询条件。如果每次都手动...

将姓名转换为数字以实现排序的解决方案在许多应用场景中,用户可能需要在群组中进行排序,尤其是在一个用...

在使用IntelliJIDEAUltimate版本启动Spring...

Java对象与数组的转换:深入探讨强制类型转换的风险与正确方法很多Java初学者会遇到将一个对象转换成数组的�...

电商平台SKU和SPU表设计详解本文将探讨电商平台中SKU和SPU的数据库设计问题,特别是如何处理用户自定义销售属...

在使用TKMyBatis进行数据库查询时,如何优雅地获取实体类变量名以构建查询条件,是一个常见的难题。本文将针...
