【重写源码】spring、spring boot、springcould 项目框架中重写源码

  1. 为啥要重写/覆盖spring/第三方框架源码?

    1. 紧急BUG修复:在项目突发阻塞性BUG时,需要立即回滚源码 or 修复/覆盖源码。
    2. 项目调优:在优化项目时,需要调整框架参数以使程序性能达到最优,但有时会遇到框架的BUG,即:框架参数配置了不生效,可能的原因:① 可能有关联配置项需要配置 or 相关功能需要开启【比如:MQ是否开启堆外内存】等。 ② 的确是碰到了你使用框架版本的bug【比如:springboot 2.3.4 版本属性设置(max-in-memory-size) 加大配置缓冲区不生效,or springcould getaway的堆外内存没有回收相关BUG等】,此时需要升级框架版本 or 考虑到影响范围最小化原则,修改/覆盖源码是此时最佳的选择。
    3. 开发过程中,项目中总会引入一些第三方依赖包,以便通过直接调用jar包中的方法来完成某些实际业务。但是有时候jar包中封装的方法可能跟我们的实际需求有些出入,需要修改业务逻辑后重新打包才能使用,但是jar包可能不像普通的maven项目那样导入idea等工具修改然后直接利用maven命令来完成,很多时候需要安装一些反编译工具才能打开,且不能在反编译工具中直接修改。此时需要修改/覆盖源码。
    4. 优化第三方jar包的性能,此时需要修改/覆盖源码。
  2. 怎样重写/覆盖spring/第三方框架源码?

    1. 找到源码位置
    2. 在项目中建相同的包名
      1. 步骤:
        1. 先把源码复制出来
        2. 放在和源码的同名包下
    3. 重写
      1. 步骤:
        1. 在源码中加上:@Slf4j or private Logger log = LoggerFactory.getLogger(getClass());
        2. 在源码中加上:@Component
        3. 再改写/修复源码中的bug,并加上必要的日志
    4. 执行:maven clean install
    5. 验证,是否执行新的重写逻辑
    6. 搞定,收工!
    7. 其他几种修复/重写方式:https://www.cnblogs.com/tyxa/articles/17544446.html
posted @ 2023-07-11 11:02  望)=天涯  阅读(128)  评论(0编辑  收藏  举报