如何修改和编译spring

70次阅读
没有评论

共计 2004 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章给大家分享的是有关如何修改和编译 spring-context 的源码的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

下载源码

下载源码的第一步,是找个用到了 spring-context-4.0.2.RELEASE.jar 的 java 工程,如果读者您手里没有现成的工程,可以在我的 git 上下载,地址:https://github.com/zq2599/blog_demos

下载后可以发现里面有很多工程,本次实战用的工程是 springmybatisexceptiondemo,如下图红框所示:

用命令行进入 pom.xml 所在的目录下,执行命令 font color= blue mvn dependency:sources /font,即可下载所有依赖库的源码包,如下图:

此时进入 maven 的本地仓库,找到 spring-context 的目录,在里面就能看到源码的 jar 包,如下图:

maven 的本地仓库,一般在用户目录的.m2 文件夹下;

解压 jar 包,准备材料

在 maven 的本地仓库中,找到 spring-context 的目录后,将里面的 spring-context-4.0.2.RELEASE.pom,spring-context-4.0.2.RELEASE-sources.jar,spring-context-4.0.2.RELEASE.jar 这三个文件都复制到一个新建的文件夹中,然后将 spring-context-4.0.2.RELEASE-sources.jar 和 spring-context-4.0.2.RELEASE.jar 都解压;

## 新建 spring-context 的 maven 工程 ## 新建一个 maven 工程,pom 文件的内容和 spring-context-4.0.2.RELEASE.pom 的一模一样,如下图:

进入刚才解压的 spring-context-4.0.2.RELEASE-sources.jar 的文件夹,把里面的 org 文件夹整个都复制到新建的 maven 工程的 java 文件夹下,如下图所示:

只复制 java 文件是不够的,还要复制 META-INF 和 xsd 文件,这些东西都不在 spring-context-4.0.2.RELEASE-sources.jar 包中,还记得刚刚我们把 spring-context-4.0.2.RELEASE.jar 文件也解压了么?META-INF 和 xsd 文件在这个解压的文件夹中可以找到;

先是 META-INF,在 spring-context-4.0.2.RELEASE.jar 的解压目录中,把 META-INF 文件夹复制到新建的 maven 工程的 resources 文件夹下,如下图所示:

接下来是 xsd 文件,在 spring-context-4.0.2.RELEASE.jar 的解压目录中,进入 org/springframework/cache/config 子目录,里面不以 class 为后缀的文件有四个,把这四个文件全部复制到 maven 工程源码的 org/springframework/cache/config 目录下,如下图:

以下几个目录下也有 xsd 文件,请像上面的方法一样,将里面的 xsd 和 gif 都复制到 maven 工程中对应的目录下:

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

构建 jar 包

在上面所建的 maven 工程的 pom.xml 文件所在目录下,执行命令 font color= blue mvn clean package -U -Dmaven.test.skip=true /font,执行成功后,在 target 目录下就能看到最新构建的 jar 包了,如下图:

至此,我们实践了构建 spring-context 的 jar 包的过程,根据实际需要,我们可以先修改了源码再构建,例如下图是我修改的 CommonAnnotationBeanPostProcessor 类的源码,很简单,加了一些输出,比如打印当前缓存的 key,以及代码的调用栈情况:

改完代码后重新构建,生成新的 spring-context-4.0.2.RELEASE.jar 文件,我的 web 应用之前已经部署在了 tomcat 下,现在打开这个应用的 lib 目录,用这个 jar 替换原有的文件,再重启 tomcat,在控制台可以看到打印出了比以前更多的异常堆栈内容,便于我们定位问题:

感谢各位的阅读!关于“如何修改和编译 spring-context 的源码”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计2004字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)