构建企业级微服务脚手架
前置准备
IDEA 默认的 Initializr 服务器在国外,国内网络经常导致"Loading..."卡死。在开始之前,必须确保 Maven 配置了阿里云镜像(如果还没配过,立刻做):
-
找到电脑上的 Maven 配置文件(通常在
C:\Users\用户名\.m2\settings.xml或 Maven 安装目录的conf/settings.xml)。 -
用记事本打开,找到
<mirrors>标签,把里面的内容替换为阿里云镜像:xml<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
一、打开创建面板
- 打开 IDEA。如果在一个已有项目里,点击左上角菜单栏的
File->New->Module...。如果是刚打开 IDEA 欢迎界面,直接点New Project。 - 在弹出的窗口左侧列表中,选择
Spring Boot
二、元数据配置
在这个界面,需要填写项目的身份信息。企业里对这些命名有严格规范:
- Name (项目名称):全小写,中划线分隔,这是微服务标准命名法。
- Language :选择
Java。 - Type :选择
Maven(通常如此,极少用 Gradle)。 - Group (组织标识):通常是公司域名倒写。
- Artifact (项目标识):通常和 Name 保持一致。
- Package name (包名):IDEA 会自动拼成(注意:企业级项目包名绝对不能带中划线,必须全是小写字母)
- Packaging :选择
Jar(Boot 默认,内嵌 Tomcat)。 - Java:Java版本。,按需选择。
点击右下角的 Next,进入下一页
三、选择 Spring Boot 版本
- Version:按需选择
如何获取添加或修改SpringBoot版本(Maven 项目)
在
pom.xml中,通过<parent>标签指定 Spring Boot 的版本:
xml<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.5.9</version> <!-- 在这里指定你需要的版本 --> <relativePath/> <!-- lookup parent from repository --> </parent>修改后,IDEA 通常会提示你 同步 Maven 依赖 。如果未自动提示,可以右键点击
pom.xml->Maven->Reload Project。
四、勾选"起步依赖"
依赖项 板块,在左侧分类树或搜索框中,依次找到并 勾选以下 5 个企业级开发必备的 Starter:
- Web 层 :搜索
Spring Web,勾选。(包含内嵌 Tomcat 和 Spring MVC)。 - 校验层 :搜索
Validation,勾选。(提供@NotBlank等参数校验注解)。 - 工具层 :搜索
Lombok,勾选。(自动写 getter/setter)。 - 数据库层 :搜索
MySQL Driver,勾选。 - 持久层 :搜索
MyBatis Framework,勾选。
点击右下角的 Create,进入项目,等待"读条"......
五、项目文件整理
项目加载出来后,先做以下整理、清理:
- 替换 MyBatis-Plus 依赖(针对 Spring Boot 3.x)
操作 :打开 pom.xml,将刚刚自动生成的 mybatis-spring-boot-starter 依赖删除,手动替换为 MyBatis-Plus 官方提供的 Boot3 专属依赖:
xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.5</version> <!-- 或更高版本 -->
</dependency>
因为 IDEA 的 Initializr 只能勾选原生的 MyBatis,而在 Boot 3.x 环境下直接使用原生 MyBatis 或旧版 MP 会导致底层
factoryBeanObjectType冲突报错。
替换后,务必点击 IDEA 右上角的 Maven 刷新按钮。
- 删除无用文件 (取消勾选
Safe delete安全删除):- 删掉根目录下的
HELP.md(没用的帮助文档)。 - 删掉
mvnw和mvnw.cmd(这是给没装 Maven 的人用的包装器,企业内部开发不需要)。 - 删掉
.mvn文件夹。
- 删掉根目录下的
- 配置
.gitignore:- 打开根目录下的
.gitignore文件。确保里面包含了target/目录。这能防止你把编译产生的垃圾文件提交到 Git 仓库里,这是实习生最容易犯的致命错误。
- 打开根目录下的
- 重命名配置文件 :
- 找到
src/main/resources/下的application.properties。 - 右键 ->
Rename,把它改成application.yml。
- 找到
六、跑通验证
- 找到
src/main/java/com/jxrc/talentsubsidy下的TalentSubsidyApplication.java(主启动类)。 - 右键 点击这个文件,选择
Run 'TalentSubsidyApplication'。 - 观察底部的控制台,依次出现以下两个关键信息,就算启动成功:
- 标志 1(环境就绪) :看到
Tomcat started on port 8080 (http) with context path ''。这说明内嵌的 Tomcat 服务器成功启动,并占用了 8080 端口。 - 标志 2(核心通关) :看到
Started TalentSubsidyApplication in x.xxx seconds。这行日志是 Spring Boot 的"通关文牒",代表 Spring 容器初始化完毕,所有组件加载成功,应用正式对外提供服务!
假如公司有自己研发的"内部脚手架平台",很多操作可以省略
"默认公司私服,在家切公网" 的Maven切换方案
一、 制作"公网备用版" settings.xml
- 打开你的 D 盘(或任意非系统盘),新建一个文件夹,命名为
Maven_Public(例如路径为D:\Maven_Public)。 - 新建
D:\Maven_Public\repository空文件夹
如果只改镜像,不加本地仓库路径,Maven 依然会把从阿里云下载的包塞进 C 盘默认的
.m2\repository里。需要
<localRepository>D:\Maven_Public\repository</localRepository>明确告诉 Maven:用这个配置文件时,把包存在 D 盘这个文件夹。
直接复制粘贴进 D:\Maven_Public\settings.xml:
xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 【新增】指定公网环境专属的本地仓库路径,实现与C盘公司环境的彻底物理隔离 -->
<localRepository>D:\Maven_Public\repository</localRepository>
<mirrors>
<!-- 阿里云公网镜像 -->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
</settings>
二、 切换到公网路径
在家没公司 VPN时,运行前切换路径:
- 打开项目。
- 进入顶部菜单 File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven。
- 勾选 User settings file 后面的 Override ,路径选择你刚保存的
D:\Maven_Public\settings.xml。 - 勾选 Local repository 后面的 Override ,路径选择
D:\Maven_Public\repository(IDEA 通常会根据你上面的 settings.xml 自动识别并填好,确认一下即可)。 - 点击 Apply 和 OK。
- 点击 IDEA 右侧 Maven 面板的刷新按钮(Reload All Maven Projects)。
安全修改 Spring Boot 项目的"项目名、包名、启动类名"
建议最好不改。
一、修改 Maven 坐标与项目名(改骨架)
这一步主要影响项目的构建和打包名称,不会影响代码运行逻辑。
- 打开
pom.xml文件。 - 修改
<groupId>(组织名)、。 - 修改
<artifactId>、<name>和<description>为你想要的项目名。 - 在左侧 Project 面板,右键点击项目根目录(也就是显示旧名字的那个节点)。
- 选择 Refactor -> Rename。
- 输入新的
<artifactId>名称,按下回车。 - 文件资源管理器中的项目名也改,然后重新打开项目
- 关键检查点 :
向下滚动到<build>-><plugins>中的spring-boot-maven-plugin。如果里面显式配置了<mainClass>,请将其中的旧启动类全路径(如com.itheima.talent.TalentApplication)先删掉,或者等后面改完启动类后再来填新的。通常 Boot 会自动寻找带有@SpringBootApplication的类,建议直接删除<mainClass>标签,让框架自动找。
xml
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 如果这里有 <mainClass>,改启动类名时,必须把这里的全路径也改成新的! -->
<mainClass>com.itheima.talent.TalentApplication</mainClass>
</configuration>
</plugin>
二、安全修改包名
- 物理重命名 :在 IDEA 左侧 Project 面板,展开
src/main/java,找到你最外层的包。 - 触发重构 :右键点击该包名 -> 选择
Refactor->Rename,选择重构 所有目录。 - 输入新包名
IDEA 会自动帮做两件极其重要的事情:- 自动移动所有物理文件夹。
- 自动修改该包下所有 Java 文件的
package声明,以及全项目所有引用了这些类的import语句。
- 同步修改测试类包名 :用同样的方法,将
src/test/java下的旧包名也 Refactor 为新包名。
三、修改启动类类名
启动类是 Spring Boot 的入口,改名时必须连带处理测试类。
- 找到你的主启动类。
- 右键类名 ->
Refactor->Rename,改为想要的名字。 - 选择测试类也一起改名
四、全局"暗坑"排查清单
IDEA 的重构功能虽然强大,但它只认识 Java 代码,不认识配置文件和字符串里的硬编码 !以下这四个地方,是改包名后最容易导致项目崩溃的"暗坑",必须全局搜索旧包名(如 com.itheima)进行手动核对:
- MyBatis 的 Mapper 扫描路径
- 如果你的主启动类或配置类上写了
@MapperScan("com.itheima.dao"),必须手动改成新包名com.jxrc.talent.dao。否则启动会报No qualifying bean of type 'XXXMapper'。
- 如果你的主启动类或配置类上写了
- application.yml 中的 MyBatis 别名包
- 打开
application.yml,搜索旧包名。如果配置了mybatis.type-aliases-package: com.itheima.domain,必须改为新包名。否则 MyBatis 的 XML 文件里写resultType="User"时会找不到类。
- 打开
- AOP 切面的表达式(如果有)
- 如果项目里用了 AOP(比如做日志记录、权限校验),搜索
@Aspect和@Pointcut。里面的切点表达式通常是字符串,如execution(* com.itheima.service..*(..)),必须手动替换为新包名,否则切面会全部失效。
- 如果项目里用了 AOP(比如做日志记录、权限校验),搜索
- 自定义的 @ComponentScan
- 搜索
@ComponentScan。正常情况下 Boot 会自动扫描启动类所在的包,不需要写这个注解。但如果前辈为了某些特殊原因手动写了@ComponentScan("com.itheima.xxx"),请务必改掉。
- 搜索