博客
关于我
修改和编译spring源码,构建jar(spring-context-4.0.2.RELEASE)
阅读量:415 次
发布时间:2019-03-06

本文共 1376 字,大约阅读时间需要 4 分钟。

上周在定位问题时,发现Spring容器实例化Bean时抛出异常,为了查看更详细的信息,决定修改Spring的源码,以下是具体步骤:

下载源码

首先,下载包含Spring Context 4.0.2.RELEASE的项目。如果您没有现成的项目,可以从我的仓库下载,地址为:https://github.com/你的用户名/你的项目名称

下载完成后,进入项目的pom.xml目录,执行命令:

mvn dependency:sources

这样可以下载所有依赖库的源码包。在Maven的本地仓库 (.m2文件夹) 中找到Spring Context的目录,解压spring-context-4.0.2.RELEASE-sources.jarspring-context-4.0.2.RELEASE.jar到一个新文件夹。

解压jar包

spring-context-4.0.2.RELEASE.pomspring-context-4.0.2.RELEASE-sources.jarspring-context-4.0.2.RELEASE.jar复制到新建文件夹,解压spring-context-4.0.2.RELEASE-sources.jarspring-context-4.0.2.RELEASE.jar

新建Spring Context的Maven工程

创建一个新的Maven项目,确保pom.xmlspring-context-4.0.2.RELEASE.pom一致。将spring-context-4.0.2.RELEASE-sources.jar中的org文件夹复制到新项目的java文件夹下。

记得还要复制META-INFxsd文件。从解压的spring-context-4.0.2.RELEASE.jar中,将META-INF复制到项目的resources文件夹。接着,将org/springframework/cache/config下的非.class文件复制到项目的src/main/java/org/springframework/cache/config

同样地,处理以下目录中的文件:

  • org/springframework/context/config
  • org/springframework/ejb/config
  • org/springframework/scheduling/config
  • org/springframework/scripting/config

构建JAR包

在新项目的根目录下,执行命令:

mvn clean package -U -Dmaven.test.skip=true

构建完成后,target目录下会生成新的JAR包。

修改源码并重新构建

打开解压的spring-context-4.0.2.RELEASE-sources.jar,找到CommonAnnotationBeanPostProcessor.java,并在适当位置添加打印语句,例如打印当前缓存的键和调用栈信息。修改完成后,重新构建项目。

将修改后的JAR包替换到您的Web应用的lib目录下,重启应用,通过控制台可以看到更详细的异常堆栈,便于定位问题。

希望这篇文章能帮助您解决问题!如有疑问,欢迎在评论区留言。

转载地址:http://fatkz.baihongyu.com/

你可能感兴趣的文章
Objective-C实现bellman-ford贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现BellmanFord贝尔曼-福特算法(附完整源码)
查看>>
Objective-C实现bfs 最短路径算法(附完整源码)
查看>>
Objective-C实现BF算法 (附完整源码)
查看>>
Objective-C实现binary exponentiation二进制幂运算算法(附完整源码)
查看>>
Objective-C实现binary tree mirror二叉树镜像算法(附完整源码)
查看>>
Objective-C实现binary tree traversal二叉树遍历算法(附完整源码)
查看>>
Objective-C实现binomial coefficient二项式系数算法(附完整源码)
查看>>
Objective-C实现BitMap算法(附完整源码)
查看>>
Objective-C实现bitonic sort双调排序算法(附完整源码)
查看>>
Objective-C实现bogo sort排序算法(附完整源码)
查看>>
Objective-C实现Boyer-Moore字符串搜索算法(附完整源码)
查看>>
Objective-C实现BP误差逆传播算法(附完整源码)
查看>>
Objective-C实现breadth First Search广度优先搜索算法(附完整源码))
查看>>
Objective-C实现BreadthFirstSearch广度优先搜索算法(附完整源码)
查看>>
Objective-C实现bubble sort冒泡排序算法(附完整源码)
查看>>
Objective-C实现Burke 抖动算法(附完整源码)
查看>>
Objective-C实现CaesarsCiphe凯撒密码算法(附完整源码)
查看>>
Objective-C实现cartesianProduct笛卡尔乘积算法(附完整源码)
查看>>
Objective-C实现check strong password检查密码强度算法(附完整源码)
查看>>