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

网站建设好后有些什么资料哪里可以找到做网站的

网站建设好后有些什么资料,哪里可以找到做网站的,17网店货源网,镇江网页设计师招聘文章目录 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.yayakq.cn/news/990651/

相关文章:

  • 怎么样免费做自己的网站网站建设指数是什么意思
  • 做网站网html5网站价格
  • 平面设计免费网站有没有做任务的网站
  • 网站上的ar是什么软件做的软件定制为什么不给源码
  • seo怎么做网站的tdk如何在百度上发表文章
  • 网站首页收录做兼职上什么网站找
  • 网站搭建设计范文iis网站防盗链
  • 电话网站模版如何用本地视频做网站
  • 怎么上传文章网站精选合肥网站建设
  • 企业网站功能怎么设计怎么做网站流量赚钱吗
  • 电商网站开发发展和前景东莞百度推广优化排名
  • 钦州市建设局网站百度登录入口百度
  • 普陀区网站制作建设游戏网站
  • 如何网站开发语言龙华网站建设网站设计公司
  • 用python做美食网站wordpress个人模板
  • 受欢迎的商城网站建设中国造价信息网官网
  • 怎么制作网站接口沈阳网站建设兼职
  • 山东省建设备案网站审批表用台电脑做网站
  • 建设银行附近网站点徐闻手机网站建设公司
  • 两个域名同时指向一个网站wordpress分享到
  • 保定专业做网站微信公众平台开发公司
  • 安阳县崔家桥职业中专南岸网站关键词优化
  • 个人主页网站设计代码全球华设计大赛
  • 网站娱乐一条龙搭建wordpress不能文件名访问
  • 东莞网站设计知名 乐云践新wordpress 登录后可看
  • 有没有专门做教育培训的网站陈铭生
  • 杭州网站建站平台网络公司给我做网站我有没有源代码版权吗
  • 网站前端设计外包公司基于mvc的jsp网站开发
  • 网页设计作业简单seo做的很好的网站
  • 帮企业建设网站销售wordpress 英文 企业网站模板