开发喵星球

若依分离版解决匿名注解启动报错(129)

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

所以导致读取注解类方法需要对应的调整,当前若依项目默认版本是2.5.x,如果使用大于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-02-19 13:11:14 阅读量:119
<<   >>


powered by kaifamiao