项目总结35:SpringBoot中application.yml配置报mapping values are not allowed here  in 'reader'异常(和配置顺序有关)

 

异常日志

11:16:22.860 [main] ERROR org.springframework.boot.SpringApplication - Application startup failed
org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here
 in 'reader', line 75, column 16:
      configuration:
                   ^

    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:871)
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:360)
    ……………………………………………………

出错的application.yml片段

mybatis:
  typeAliasesPackage: com.hzsun.shr.web.maintenance.entity
 mapper-locations: classpath:com/hzsun/shr/web/maintenance/mapper/**/*.xml
  configuration: #这是第75行
    map-underscore-to-camel-case: true

原因分析

  1-没有按照规定格式写配置,比如冒号:后面需要加空格;检查没问题后,再次启动报同样的异常

  2-其他原因

最后分析发现错误原因是:该处的mybatis配置顺序不对,正确的顺序如下

 

mybatis:
  typeAliasesPackage: com.hzsun.shr.web.maintenance.entity
  configuration:
    map-underscore-to-camel-case: true
 mapper-locations: classpath:com/hzsun/shr/web/maintenance/mapper/**/*.xml

 

 分析错误的原因:application.yml加载配置是有顺序要求,比如加载

mapper-locations: classpath:com/hzsun/shr/web/maintenance/mapper/**/*.xml

 

之前,必须先加载(因为类的映射和驼峰法则都在*/xml中有体现)

  typeAliasesPackage: com.hzsun.shr.web.maintenance.entity
  configuration:
    map-underscore-to-camel-case: true

 

posted on 2019-09-28 11:27  我不吃番茄  阅读(13258)  评论(0编辑  收藏  举报