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

网站做附件下载地址西安seo优化顾问

网站做附件下载地址,西安seo优化顾问,怎么在浏览器注册网址,可以做网站的公司文章目录 Spring Boot整合Knife4j-3.0.31. 引言2. 快捷的解决方案2.1 修改knife4j的依赖2.2 application.yml增加配置3.3 SwaggerConfig配置如下 Spring Boot整合Knife4j-3.0.3 1. 引言 前面我写过一篇关于整合knife4j的文档 Spring Boot整合Knife4j-2.0.7 最近我引入redissi…

文章目录

  • Spring Boot整合Knife4j-3.0.3
    • 1. 引言
    • 2. 快捷的解决方案
      • 2.1 修改knife4j的依赖
      • 2.2 application.yml增加配置
      • 3.3 `SwaggerConfig`配置如下

Spring Boot整合Knife4j-3.0.3

1. 引言

前面我写过一篇关于整合knife4j的文档 Spring Boot整合Knife4j-2.0.7
最近我引入redission的时候莫名其妙的抛出异常:

Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException

原因:

springboot的版本和Springfox-Swagge的版本不兼容

2. 快捷的解决方案

2.1 修改knife4j的依赖

knife4j依赖

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>

springboot版本

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.5</version>
</parent>

2.2 application.yml增加配置

spring:mvc:pathmatch:matching-strategy: ANT_PATH_MATCHER

这个不能少,否则接口html页面显示不出来

3.3 SwaggerConfig配置如下


package com.jiayuan.common.config;import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
import com.jiayuan.common.constant.Constant;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
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.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.ApiKey;
import springfox.documentation.service.SecurityScheme;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;import static com.google.common.collect.Lists.newArrayList;/*** Swagger配置** @author xmc*/
@Configuration
@EnableSwagger2
@AllArgsConstructor
@EnableKnife4j
public class SwaggerConfig {private final OpenApiExtensionResolver openApiExtensionResolver;@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()//加了ApiOperation注解的类,生成接口文档.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//包下的类,生成接口文档//.apis(RequestHandlerSelectors.basePackage("com.jiayuan.modules.job.controller")).paths(PathSelectors.any()).build().extensions(openApiExtensionResolver.buildExtensions("criticalVal-management-system")).directModelSubstitute(java.util.Date.class, String.class).securitySchemes(security());}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("危急值管理系统").description("cvms-api文档").version("1.0").build();}private List<SecurityScheme> security() {return newArrayList(new ApiKey(Constant.TOKEN_HEADER, Constant.TOKEN_HEADER, "header"));}@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);}}};}}
http://www.yidumall.com/news/108739.html

相关文章:

  • 活字格能开发企业网站吗宁波谷歌seo推广
  • 购物网站建设教程目前小说网站排名
  • 自定义图片制作标题关键词优化报价
  • 上班没事做看什么网站互联网登录的网站名
  • 网站建设wang1314最新新闻今天最新新闻
  • 宁波企业建站程序宁波网络营销策划公司
  • 新疆气象局网站会计培训班
  • 什么网站可以做英语题qq引流推广软件哪个好
  • wordpress完整教程 pdf成都百度推广和seo优化
  • 网页翻译怎么弄关键词整站优化
  • 网站对图片优化吗搜索引擎优化seo应用
  • wex5可以做网站吗百度收录网址
  • scala做网站教育培训平台
  • 网站开发应该怎么做网店代运营收费
  • 网站可以做哪些内容国际新闻头条今日国际大事
  • wordpress 动漫网站石家庄限号
  • 模板网站如何建设cba最新排名
  • 怎么自己做免费网站搜索引擎的工作原理是什么
  • 电子商务网站名称和网址中国500强最新排名
  • 建设部网站 测绘规章百度快速排名化
  • 做网站的公司叫中什么今天新闻摘抄十条
  • 网页制作与网站建设 论文制作公司网站的公司
  • 网站建设人员任职要求网站免费推广网站
  • 三五互联做网站怎么样网络营销有哪些方式
  • 怎么做收费视频网站百度推广app下载官方
  • 建设企业网站可行性分析今日军事新闻头条视频
  • 国内做服装趋势的网站网站推广的目的
  • oss wordpressseo关键词排名优化工具
  • 开发区是什么意思苏州优化网站公司
  • 怎么做淘宝一样的网站国际军事形势最新消息