当前位置: 首页> 财经> 访谈 > 重庆响应式网页建设报价_外包网站制作多少钱_优化师_下载百度app到手机上

重庆响应式网页建设报价_外包网站制作多少钱_优化师_下载百度app到手机上

时间:2025/7/13 20:11:41来源:https://blog.csdn.net/zhao_kang_cheng/article/details/144625899 浏览次数:1次
重庆响应式网页建设报价_外包网站制作多少钱_优化师_下载百度app到手机上

首先第一个问题就是不兼容:

  解决方案:

   

	@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);}}};}

其二增加配置:

spring:mvc:pathmatch:matching-strategy: ANT_PATH_MATCHER  

而其中 springfox 中的一个 bug 就是,你在使用注解:paramType 由于没有使用指定的类型:path、query、body、header和form 导致启动解析的时候 enum 直接异常,导致整个项目所有注解都没有加载到系统内。解决办法:

1. 把不正确的地方修改。

2.修改源码

源码修改如下:

@Component
@Order(SwaggerPluginSupport.SWAGGER_PLUGIN_ORDER)
@SuppressWarnings("deprecation")
public class OperationImplicitParametersReader implements OperationBuilderPlugin {private static final Logger LOGGER = LoggerFactory.getLogger(OperationImplicitParametersReader.class);private final DescriptionResolver descriptions;@Autowiredpublic OperationImplicitParametersReader(DescriptionResolver descriptions) {this.descriptions = descriptions;}@Overridepublic void apply(OperationContext context) {List<Compatibility<springfox.documentation.service.Parameter, RequestParameter>> parameters= readParameters(context);context.operationBuilder().parameters(parameters.stream().map(Compatibility::getLegacy).filter(Optional::isPresent).map(Optional::get).collect(Collectors.toList()));context.operationBuilder().requestParameters(parameters.stream().map(Compatibility::getModern).filter(Optional::isPresent).map(Optional::get).collect(Collectors.toList()));}@Overridepublic boolean supports(DocumentationType delimiter) {return pluginDoesApply(delimiter);}private List<Compatibility<springfox.documentation.service.Parameter, RequestParameter>>readParameters(OperationContext context) {List<ApiImplicitParams> annotations = context.findAllAnnotations(ApiImplicitParams.class);List<Compatibility<springfox.documentation.service.Parameter, RequestParameter>> parameters = new ArrayList<>();if (!annotations.isEmpty()) {for (ApiImplicitParams annotation : annotations) {for (ApiImplicitParam param : annotation.value()) {Compatibility  compatibility = null;try {compatibility = OperationImplicitParameterReader.implicitParameter(descriptions, param);}catch(Exception e) {LOGGER.error(String.format("Unable to scan documentation Compatibility- ApiImplicitParam %s", param.value()), e);continue;}parameters.add(compatibility);}}}return parameters;}
}

关键修改:

Compatibility  compatibility = null;
                    try {
                        compatibility = OperationImplicitParameterReader.implicitParameter(descriptions, param);
                    }catch(Exception e) {//在这个地方补货异常,并将异常处理,不往上抛
                        LOGGER.error(String.format("Unable to scan documentation Compatibility- ApiImplicitParam %s", param.value()), e);
                        continue;
                    }
                    parameters.add(compatibility);

 

关键字:重庆响应式网页建设报价_外包网站制作多少钱_优化师_下载百度app到手机上

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: