• SpringBoot 2.18升级到2.7.5, 踩到的坑


    系统要求:

    jdk 8~19


    1,mybatis 实体注解失败,

    相应maven添加

    1. <dependency>
    2. <groupId>javax.validationgroupId>
    3. <artifactId>validation-apiartifactId>
    4. <version>2.0.1.Finalversion>
    5. <scope>compilescope>
    6. dependency>

    mybatis-spring-boot-starter 升级到2.2.2

    com.github.pagehelper 升级 1.4.4

    org.apache.shiro 升级 1.10.0

    2,MultipartProperties 中 文件大小 的后缀,只识别大写

    org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException

    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181)

    at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)

    at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)

    at java.base/java.lang.Iterable.forEach(Iterable.java:75)

    3,swagger 升级

    1. <dependency>
    2. <groupId>io.springfoxgroupId>
    3. <artifactId>springfox-swagger2artifactId>
    4. <version>3.0.0version>
    5. <scope>compilescope>
    6. dependency>
    7. <dependency>
    8. <groupId>io.springfoxgroupId>
    9. <artifactId>springfox-swagger-uiartifactId>
    10. <version>3.0.0version>
    11. <scope>compilescope>
    12. dependency>

    Springfox使用的路径匹配是基于AntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher,增加mvc配置,

    1. spring:
    2. mvc:
    3. pathmatch:
    4. matching-strategy: ant_path_matcher

    访问:http:/127.0.0.1/swagger-ui/index.html

    注:swagger2的访问地址:是http:/127.0.0.1/swagger-ui.html

    4,升级 shardingsphere

    1. <dependency>
    2. <groupId>org.apache.shardingspheregroupId>
    3. <artifactId>sharding-jdbc-spring-boot-starterartifactId>
    4. <version>4.1.1version>
    5. dependency>
    6. <dependency>
    7. <groupId>org.apache.shardingspheregroupId>
    8. <artifactId>sharding-jdbc-spring-namespaceartifactId>
    9. <version>4.1.1version>
    10. dependency>

    5,spring.rabbitmq.publisher-confirms Deprecated

    替换成:spring.rabbitmq.publisher-confirm-type=correlated

    6,yml配置文件更改

    Property 'spring.profiles.include[0]' imported from location 'class path resource [application-prod.yml]' is invalid in a profile specific resource [origin: class path resource [application-prod.yml] -

    include不能单独使用 

    1. spring:
    2. config:
    3. import: application-common-prod.yml

    7,升级 elasticsearch

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-data-elasticsearchartifactId>
    4. dependency>

    报错:

    Factory method 'esClient' threw exception; nested exception is java.lang.NoClassDefFoundError: jakarta/json/spi/JsonProvider

    解决方案:

    父模块添加声明依赖

    1. <dependency>
    2. <groupId>jakarta.jsongroupId>
    3. <artifactId>jakarta.json-apiartifactId>
    4. <version>2.0.1version>
    5. dependency>

    8,升级后 ,屏蔽 自带的tomcat , 使用 undertow

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-webartifactId>
    4. <exclusions>
    5. <exclusion>
    6. <groupId>org.springframework.bootgroupId>
    7. <artifactId>spring-boot-starter-tomcatartifactId>
    8. exclusion>
    9. exclusions>
    10. dependency>
    11. <dependency>
    12. <groupId>org.springframework.bootgroupId>
    13. <artifactId>spring-boot-starter-undertowartifactId>
    14. dependency>

     9,升级后 监听器使用@ConfigurationProperties(prefix="website"),报空指针

    没找到具体原因,

    猜测可能是加载顺序的问题,监听器在springboot容器外,可能是监听器加载时,springboot没有加载完,导致空指针异常。

    后来直接在监听器中使用@Value注入资源文件属性,打印俩次日志,第一次时空数据,第二次数据加载,可能还是容器外管理的问题,加载顺序不一致导致的。

    暂时得到解决,后面再找具体原因,如果有知道的也可以评论栏给下提示,万分感谢

  • 相关阅读:
    C++面向对象三大特性之一---->继承详解
    用ChatGPT做一个Chrome扩展 | 京东云技术团队
    oracle数据库控制语言—DCL
    紫光同创FPGA实现UDP协议栈网络视频传输,带录像和抓拍功能,基于YT8511和RTL8211,提供2套PDS工程源码和技术支持
    电脑老系统怎么换新系统?
    redis的缓存更新策略
    VMware Esxi 7.0.3用户名密码都对,网页却无法登录问题解决
    中国电吹风机行业市场发展现状及预测报告
    【基于YOLOv8的教室人脸识别 附源码 数据集】
    交割合约(期货合约)是什么?
  • 原文地址:https://blog.csdn.net/fjza1168/article/details/127744049