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

道滘做网站一个域名可以建几个网站

道滘做网站,一个域名可以建几个网站,推广网站挣钱 优帮云,永久免费wap自助建站在 Spring Boot 2.7.6 版本中集成 Swagger 的步骤相对直接,主要涉及添加依赖、编写配置以及在控制器中添加文档注解几个环节。 下面是集成 Swagger 的基本步骤: 1. 添加依赖 首先,在pom.xml文件中添加 Swagger 相关依赖。 对于 Spring Boot…

在 Spring Boot 2.7.6 版本中集成 Swagger 的步骤相对直接,主要涉及添加依赖、编写配置以及在控制器中添加文档注解几个环节。

下面是集成 Swagger 的基本步骤:

1. 添加依赖

        首先,在pom.xml文件中添加 Swagger 相关依赖。

        对于 Spring Boot 2.x 版本,推荐使用 springfox-boot-starter,这是一个包含 Swagger UI 和 Swagger 2 功能的启动器模块。

<dependencies><!-- Springfox Swagger UI and Swagger 2 support --><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version> <!-- 确认最新的版本号 --></dependency><!-- 其他依赖... -->
</dependencies>

2. 编写 Swagger 配置

        创建一个配置类来设置 Swagger 的基本信息,比如 API 文档的基本信息、扫描的包路径等。

#swgger启用标识  true启用 false不启用
sys:swagger:enable-swgger: true
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;@Configuration
@EnableSwagger2WebMvc // 如果使用的是Springfox 3.x,则启用此注解
public class SwaggerConfig {@Value("${sys.swagger.enable-swgger}")private Boolean enableSwgger;@Beanpublic Docket api() {return new Docket(DocumentationType.SWAGGER_2).enable(enableSwgger).select().apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()).build().apiInfo(apiInfo());}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("Your API Title").description("Description of your API").version("1.0.0").build();}
}

3. 在控制器中使用注解

        在REST 控制器类和方法上添加 Swagger 提供的注解,以便生成详细的文档信息。

        @Api: 用于类级别,描述控制器的作用。

        @ApiOperation: 用于方法级别,描述具体操作。

        @ApiParam: 用于方法参数,描述参数详情。

        @ApiResponse: 用于方法,描述响应详情。

        @ApiModel 和 @ApiModelProperty: 用于模型对象,描述返回实体的属性。

        例如:

@RestController
@RequestMapping("/api/users")
@Api(value = "User Management", description = "User CRUD operations")
public class UserController {@GetMapping("/{id}")@ApiOperation(value = "Find user by ID", notes = "Returns a single user")@ApiResponses({@ApiResponse(code = 200, message = "Successfully retrieved user"),@ApiResponse(code = 404, message = "User not found")})public ResponseEntity<User> getUser(@PathVariable Long id) {// ... implementation}// ... other methods
}

4. 访问 Swagger UI

        配置完成后,启动 Spring Boot 应用,然后访问 http://localhost:8080/doc.html(默认端口为8080,根据实际情况调整),应该能看到 Swagger UI 页面,其中列出了所有被扫描到的 API 接口及其详细信息。

5、问题记录

        5.1、启动报错

        报错信息如下:

org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerExceptionat org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.24.jar:5.3.24]at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_77]at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) [spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) [spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) [spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) [spring-boot-2.7.6.jar:2.7.6]at com.zklcsoftware.FlowableUiApplication.main(FlowableUiApplication.java:15) [classes/:na]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_77]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_77]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_77]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_77]at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.7.6.jar:2.7.6]

        解决办法:

        需要加上如下配置:

package com.zklcsoftware;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;@Configuration
public class BeanPostProcessorConfig {@Beanpublic static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {return new BeanPostProcessor() {@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) {customizeSpringfoxHandlerMappings(getHandlerMappings(bean));}return bean;}private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) {List<T> copy = mappings.stream().filter(mapping -> mapping.getPatternParser() == null).collect(Collectors.toList());mappings.clear();mappings.addAll(copy);}@SuppressWarnings("unchecked")private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {try {Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");field.setAccessible(true);return (List<RequestMappingInfoHandlerMapping>) field.get(bean);} catch (IllegalArgumentException | IllegalAccessException e) {throw new IllegalStateException(e);}}};}
}

        5.2、启动成功后,访问swagger-ui页面出现不显示接口信息的问题

        解决办法:

                在application.yml配置文件中加上下面的配置

spring:mvc:pathmatch:matching-strategy: ANT_PATH_MATCHER

http://www.15wanjia.com/news/182847.html

相关文章:

  • 酒店官方网站的功能建设现在建设网站都用什么软件下载
  • wordpress+网站白屏做网站优化期间能收到网站吗
  • 内蒙古网站建设信息图跃企业网站建设
  • 外国购物网站设计风格域名交易网站哪个好
  • 网站建设就业培训邯郸专业做网站报价
  • 天河做网站开发建设银行北京分行招聘网站
  • 千博企业网站管理系统2013wordpress快速发布
  • 深圳外贸网站设计公司网站经常被黑
  • 网站左侧悬浮导航免费服务器虚拟化
  • 网站地图链接怎么做wordpress中文竖排
  • 建设银行官方网站电子银行登录小程序开发需要什么基础
  • 个体户能做网站备案吗网站建设模块培训ppt
  • 阿里巴巴国际站开店流程及费用那个网站做的好
  • 漂亮的php网站源码网站设计与开发的基本步骤包括哪些
  • 牛商网做的包装盒网站网站服务器中如何做重定向
  • 云浮网站网站建设微慕wordpress
  • 学生建设网站西安关键词优化服务
  • 唐山免费网站制作对接空间站
  • 做医疗科普的网站小型餐饮店面设计
  • 网站开发属于软件开发类吗西部数码网站管理助手
  • 好看的商城网站怀化市优化办
  • 网站建设新闻++常识百度整站优化
  • 建设信基金管理有限公司网站网址的英文
  • 创建网站 制作首页建设银行江苏省分行网站
  • 菏泽做网站的公司淮安网站建设找谁好
  • 贸易网站设计公司网站备案升级
  • 有没有专门做建筑造价的私单网站快速排名优化系统
  • 安阳网站建设策划wordpress 首页显示全文
  • 做网站需要多少钱卖片可以吗免费建一个自己的网站
  • 耐思尼克网站网站 keywords seo