首页 > Java > java教程 > SpringBoot Web服务-部分初始配置

SpringBoot Web服务-部分初始配置

Susan Sarandon
发布: 2025-01-06 01:36:43
原创
710 人浏览过

SpringBoot Web Service - Part  Initial Configuration

在这篇文章中,我们将探索如何在 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 应用程序的几个关键领域:

  1. 应用程序属性:

name:定义应用程序的名称,这里设置为 book-catalog。

版本:引用可能在构建过程中填充的占位符,以指定应用程序的版本。

  1. MVC 配置:

problemdetails.enabled:在异常响应正文中启用详细问题报告。

  1. 管理端点:

endpoints.web.exposure.include: '*':** 公开所有执行器端点以用于监视和管理目的。

info.git.mode: full:在 /info 端点中提供详细的 Git 信息。

  1. 服务器配置:

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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板