开发喵星球

若依前后端分离如何解决匿名注解启动报错(102)

SpringBoot2.6.0默认是ant_path_matcher解析方式
2.6.0之后默认是path_pattern_parser解析方式

所以导致读取注解类方法需要对应的调整,如果使用大于2.6.x,需要将info.getPatternsCondition().getPatterns()修改为info.getPathPatternsCondition().getPatternValues()

// 获取方法上边的注解 替代path variable 为 *
Anonymous method = AnnotationUtils.findAnnotation(handlerMethod.getMethod(), Anonymous.class);
Optional.ofNullable(method).ifPresent(anonymous -> Objects.requireNonNull(info.getPathPatternsCondition().getPatternValues()) // 
        .forEach(url -> urls.add(RegExUtils.replaceAll(url, PATTERN, ASTERISK))));

// 获取类上边的注解, 替代path variable 为 *
Anonymous controller = AnnotationUtils.findAnnotation(handlerMethod.getBeanType(), Anonymous.class);
Optional.ofNullable(controller).ifPresent(anonymous -> Objects.requireNonNull(info.getPathPatternsCondition().getPatternValues())
        .forEach(url -> urls.add(RegExUtils.replaceAll(url, PATTERN, ASTERISK))));

注意,如果通过配置修改了解析方式

# Spring配置
spring:
  mvc:
    pathmatch:
      matching-strategy: xxxx

处理映射匹配也需要对应的去修改:
ant_path_matcher > info.getPatternsCondition().getPatterns() path_pattern_parser
-> info.getPathPatternsCondition().getPatternValues()

   
分类:Java/OOP 作者:无限繁荣, 吴蓉 发表于:2024-01-10 17:32:57 阅读量:96
<<   >>


powered by kaifamiao