ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SpringBoot项目改造注意事项(旧项目框架复用)

SpringBoot项目改造注意事项(旧项目框架复用) 第一章、 项目改造准备工作1.1 保留日志切面、Util、配置等将旧项目rpm改名为新项目itm对整个项目的构建配置、包结构、资源文件进行系统性调整。保留日志配置Logback/Log4j2、切面类AOP、业务代码逻辑、数据库配置等核心功能代码。1.2 备份项目在动手之前务必先对原项目做一次完整备份复杂一份或者使用 Git 创建分支这样即使改坏了也能随时回退。Git 仓库地址克隆到新的 git 仓库不要 push 回旧项目仓库gitcheckout-brename-rpm-to-itm2. 修改 Maven 配置pom.xml2.1 修改项目坐标打开根目录下的pom.xml找到project标签下的基本信息将rpm改为itm!-- 修改前 --groupIdcom.example/groupIdartifactIdrpm/artifactIdversion1.0.0/versionnamerpm/namedescriptionRPM Project/description!-- 修改后 --groupIdcom.example/groupIdartifactIditm/artifactIdversion1.0.0/versionnameitm/namedescriptionITM Project/description注意artifactId是 Maven 识别项目身份的核心标识必须修改。name和description是描述性信息建议同步修改以保持一致性。2.2 检查父 POM 和子模块如果你的项目是多模块结构有父 POM 和子模块需要同步修改!-- 父 POM 中的 modules 声明 --modulesmoduleitm-core/modulemoduleitm-web/modulemoduleitm-service/module/modules同时每个子模块的pom.xml中parent标签里的artifactId也要改为新的父项目名称parentgroupIdcom.example/groupIdartifactIditm/artifactIdversion1.0.0/versionrelativePath../pom.xml/relativePath/parent2.3 检查依赖引用如果项目内部模块之间存在相互依赖也要同步修改!-- 修改前 --dependencygroupIdcom.example/groupIdartifactIdrpm-core/artifactIdversion1.0.0/version/dependency!-- 修改后 --dependencygroupIdcom.example/groupIdartifactIditm-core/artifactIdversion1.0.0/version/dependency2.4 修改打包配置如果pom.xml中有build配置检查最终打包文件名buildfinalNameitm/finalName!-- 或 --finalName${project.artifactId}/finalName/build这样打包出来的 JAR/WAR 文件名就会是itm.jar或itm.war。2.5 修改内容在pom.xml中除了坐标信息以下内容也需要同步修改!-- 项目描述信息 --nameitm/namedescriptionITM Project/descriptionurlhttps://itm.example.com/urlproperties 节点项目自定义属性如版本号、编码、镜像仓库地址等若包含rpm字样需同步替换。plugin 配置maven-jar-plugin的finalName、docker-maven-plugin的镜像名称等确保打包产物和镜像名称为itm。3. 修改代码层面3.1 修改 Java 包名在 IDEA 中右键点击根包名如com.example.rpm选择Refactor → Rename将rpm改为itm。IDEA 会自动更新所有引用该包的 Java 文件。注意使用 IDEA 的 Refactor 功能而不是手动逐个修改可以避免遗漏 import 语句。3.2 修改内容代码层面除了包名以下内容也常包含旧项目名称需要逐一排查// 项目内常量publicstaticfinalStringPROJECT_NAMEitm;publicstaticfinalStringAPP_NAMEitm;// 自定义异常、返回体打印的项目标识// 定时任务、线程池名称前缀threadFactory.setNamePrefix(itm-service-);// RabbitMQ/Kafka 消息队列队列名、topic 名称// Redis key 缓存前缀redisKeyPrefixitm:;3.3 检查切面类中的包引用你的切面类AOP中如果有Pointcut表达式指向具体的包路径需要同步修改// 修改前Pointcut(execution(* com.example.rpm.service.*.*(..)))// 修改后Pointcut(execution(* com.example.itm.service.*.*(..)))3.4 修改内容启动类SpringBootApplication注解的类的包名和类名如果包含rpm也需要修改// 修改前packagecom.example.rpm;SpringBootApplicationpublicclassRpmApplication{publicstaticvoidmain(String[]args){SpringApplication.run(RpmApplication.class,args);}}// 修改后packagecom.example.itm;SpringBootApplicationpublicclassItmApplication{publicstaticvoidmain(String[]args){SpringApplication.run(ItmApplication.class,args);}}此外以下注解中的包路径或名称也容易遗漏需同步检查ComponentScan(com.example.itm)MapperScan(com.example.itm.mapper)ConditionalOnProperty(nameitm.enabled,havingValuetrue)CacheNames(itm:cache)3.5 怎么修改IDEA左上角项目名称修改了pom文件和文件路径的项目名字后IDEA左上角项目名称没有变化。点击Project Structure修改project name即可.idea 文件夹 xxx.iml 文件能不能删1、.idea 文件夹✅ 可以删除安全不会损坏你的项目代码作用IntelliJ‑IDEA 的本地配置缓存模块设置、运行配置、索引、IDE 布局等只存在你电脑不属于项目源码。删除后果IDE 下次打开项目会重新生成整套 .idea之前配好的运行参数、SDK、IDE 视图布局丢失Git 建议不要提交 .idea一般加到 .gitignore2、xxx.iml 文件✅ 也可以删掉iml IDEA 模块配置文件标记源码根目录、依赖。删掉打开项目后 IDEA 会自动重建。如果你是 Maven 项目 (pom.xml)iml、.idea 全部删掉然后IDEA 重新打开文件夹右键 pom.xml → Add as Maven Project即可恢复完整项目。4.配置文件3.1 修改内容检查src/main/resources下的配置文件application.yml 或 application.properties# 修改前spring:application:name:rpmredis:key-prefix:rpm:# 修改后spring:application:name:itmredis:key-prefix:itm:需要同步修改的配置项包括端口号server.port避免和旧项目冲突静态资源、模板文件内写死的项目名称文件上传下载存储路径nacos 注册中心命名空间、dataId、groupRedis数据库序号、key 统一前缀数据库不要连旧项目数据库定时任务、业务开关配置项跨域、白名单、业务硬编码 IPactuator监控端点、info 信息bootstrap.ymlnacos 项目很容易忘记改 bootstrap# 修改前spring:application:name:rpm# 修改后spring:application:name:itm日志路径、日志文件名、logback-spring.xml 或 log4j2.xml!-- 修改前 --propertynameLOG_FILEvalue./logs/rpm.log/!-- 修改后 --propertynameLOG_FILEvalue./logs/itm.log/5 外部配置5.1 修改内容外部配置和部署相关文件也需要同步修改避免遗漏# IDEA重命名根模块检查 .idea 文件夹删掉重新导入最稳# 数据库连接指向全新库没有共用旧库# Nacos 服务名称不和旧服务重名# Dockerfilejar 包文件名对应 pom finalName# shell 启动脚本 .shjava -jar itm-xxx.jar# k8s yaml、helm 配置、容器名称、镜像名# Jenkins 流水线脚本
返回列表