一些基础和问题解决

208 阅读9分钟

构建企业级微服务脚手架

前置准备

IDEA 默认的 Initializr 服务器在国外,国内网络经常导致“Loading...”卡死。在开始之前,必须确保 Maven 配置了阿里云镜像(如果还没配过,立刻做):

  1. 找到电脑上的 Maven 配置文件(通常在 C:\Users\用户名\.m2\settings.xml 或 Maven 安装目录的 conf/settings.xml)。
  2. 用记事本打开,找到 <mirrors> 标签,把里面的内容替换为阿里云镜像:
    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>*</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
    

一、打开创建面板

  1. 打开 IDEA。如果在一个已有项目里,点击左上角菜单栏的 File -> New -> Module...。如果是刚打开 IDEA 欢迎界面,直接点 New Project
  2. 在弹出的窗口左侧列表中,选择 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 的版本:

<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:

  1. Web 层:搜索 Spring Web,勾选。(包含内嵌 Tomcat 和 Spring MVC)。
  2. 校验层:搜索 Validation,勾选。(提供 @NotBlank 等参数校验注解)。
  3. 工具层:搜索 Lombok,勾选。(自动写 getter/setter)。
  4. 数据库层:搜索 MySQL Driver,勾选。
  5. 持久层:搜索 MyBatis Framework,勾选。

点击右下角的 Create,进入项目,等待“读条”……

五、项目文件整理

项目加载出来后,先做以下整理、清理:

  1. 替换 MyBatis-Plus 依赖(针对 Spring Boot 3.x)

操作:打开 pom.xml,将刚刚自动生成的 mybatis-spring-boot-starter 依赖删除,手动替换为 MyBatis-Plus 官方提供的 Boot3 专属依赖:

<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 刷新按钮。

  1. 删除无用文件(取消勾选 Safe delete安全删除):
    • 删掉根目录下的 HELP.md(没用的帮助文档)。
    • 删掉 mvnwmvnw.cmd(这是给没装 Maven 的人用的包装器,企业内部开发不需要)。
    • 删掉 .mvn 文件夹。
  2. 配置 .gitignore
    • 打开根目录下的 .gitignore 文件。确保里面包含了 target/ 目录。这能防止你把编译产生的垃圾文件提交到 Git 仓库里,这是实习生最容易犯的致命错误
  3. 重命名配置文件
    • 找到 src/main/resources/ 下的 application.properties
    • 右键 -> Rename,把它改成 application.yml

六、跑通验证

  1. 找到 src/main/java/com/jxrc/talentsubsidy 下的 TalentSubsidyApplication.java(主启动类)。
  2. 右键点击这个文件,选择 Run 'TalentSubsidyApplication'
  3. 观察底部的控制台,依次出现以下两个关键信息,就算启动成功
  • 标志 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

  1. 打开你的 D 盘(或任意非系统盘),新建一个文件夹,命名为 Maven_Public(例如路径为 D:\Maven_Public)。
  2. 新建 D:\Maven_Public\repository 空文件夹

如果只改镜像,不加本地仓库路径,Maven 依然会把从阿里云下载的包塞进 C 盘默认的 .m2\repository 里。
需要<localRepository>D:\Maven_Public\repository</localRepository>明确告诉 Maven:用这个配置文件时,把包存在 D 盘这个文件夹。

直接复制粘贴进 D:\Maven_Public\settings.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时,运行前切换路径

  1. 打开项目。
  2. 进入顶部菜单 File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven
  3. 勾选 User settings file 后面的 Override,路径选择你刚保存的 D:\Maven_Public\settings.xml
  4. 勾选 Local repository 后面的 Override,路径选择 D:\Maven_Public\repository(IDEA 通常会根据你上面的 settings.xml 自动识别并填好,确认一下即可)。
  5. 点击 ApplyOK
  6. 点击 IDEA 右侧 Maven 面板的刷新按钮(Reload All Maven Projects)。

安全修改 Spring Boot 项目的“项目名、包名、启动类名”

建议最好不改。

一、修改 Maven 坐标与项目名(改骨架)

这一步主要影响项目的构建和打包名称,不会影响代码运行逻辑。

  1. 打开 pom.xml 文件。
  2. 修改 <groupId>(组织名)、。
  3. 修改 <artifactId><name><description> 为你想要的项目名。
  4. 在左侧 Project 面板,右键点击项目根目录(也就是显示旧名字的那个节点)。
  5. 选择 Refactor -> Rename
  6. 输入新的 <artifactId> 名称,按下回车。
  7. 文件资源管理器中的项目名也改,然后重新打开项目
  8. 关键检查点
    向下滚动到 <build> -> <plugins> 中的 spring-boot-maven-plugin。如果里面显式配置了 <mainClass>,请将其中的旧启动类全路径(如 com.itheima.talent.TalentApplication)先删掉,或者等后面改完启动类后再来填新的。通常 Boot 会自动寻找带有 @SpringBootApplication 的类,建议直接删除 <mainClass> 标签,让框架自动找
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <!-- 如果这里有 <mainClass>,改启动类名时,必须把这里的全路径也改成新的! -->
        <mainClass>com.itheima.talent.TalentApplication</mainClass> 
    </configuration>
</plugin>

二、安全修改包名

  1. 物理重命名:在 IDEA 左侧 Project 面板,展开 src/main/java,找到你最外层的包。
  2. 触发重构:右键点击该包名 -> 选择 Refactor -> Rename,选择重构 所有目录
  3. 输入新包名
    IDEA 会自动帮做两件极其重要的事情:
    • 自动移动所有物理文件夹。
    • 自动修改该包下所有 Java 文件的 package 声明,以及全项目所有引用了这些类的 import 语句。
  4. 同步修改测试类包名:用同样的方法,将 src/test/java 下的旧包名也 Refactor 为新包名。

三、修改启动类类名

启动类是 Spring Boot 的入口,改名时必须连带处理测试类。

  1. 找到你的主启动类。
  2. 右键类名 -> Refactor -> Rename,改为想要的名字。
  3. 选择测试类也一起改名

四、全局“暗坑”排查清单

IDEA 的重构功能虽然强大,但它只认识 Java 代码,不认识配置文件和字符串里的硬编码!以下这四个地方,是改包名后最容易导致项目崩溃的“暗坑”,必须全局搜索旧包名(如 com.itheima)进行手动核对:

  1. MyBatis 的 Mapper 扫描路径
    • 如果你的主启动类或配置类上写了 @MapperScan("com.itheima.dao"),必须手动改成新包名 com.jxrc.talent.dao。否则启动会报 No qualifying bean of type 'XXXMapper'
  2. application.yml 中的 MyBatis 别名包
    • 打开 application.yml,搜索旧包名。如果配置了 mybatis.type-aliases-package: com.itheima.domain,必须改为新包名。否则 MyBatis 的 XML 文件里写 resultType="User" 时会找不到类。
  3. AOP 切面的表达式(如果有)
    • 如果项目里用了 AOP(比如做日志记录、权限校验),搜索 @Aspect@Pointcut。里面的切点表达式通常是字符串,如 execution(* com.itheima.service..*(..)),必须手动替换为新包名,否则切面会全部失效。
  4. 自定义的 @ComponentScan
    • 搜索 @ComponentScan。正常情况下 Boot 会自动扫描启动类所在的包,不需要写这个注解。但如果前辈为了某些特殊原因手动写了 @ComponentScan("com.itheima.xxx"),请务必改掉。

将 SQL 文件导入到 Navicat

第一步:建立新连接(如果决定导入已有连接可跳过)

  1. 打开 Navicat,点击左上角的 “连接 (Connection)” -> 选择 “MySQL”
  2. 在弹出的窗口中填写连接信息:
    • 连接名:随便起,比如 本地测试环境
    • 主机localhost127.0.0.1(如果是连本地数据库)。
    • 端口3306(默认)。
    • 用户名root(或您的数据库账号)。
    • 密码:您的数据库密码。
  3. 点击左下角的 “测试连接”,提示“连接成功”后,点击 “确定”

第二步:创建一个“空房间”(新建数据库)

  1. 在 Navicat 左侧,双击刚刚建好的 本地测试环境 连接,让它变绿(激活状态)。
  2. 右键点击该连接名,选择 “新建数据库 (New Database...)”
  3. 在弹出的窗口中,严格按照以下配置填写(防乱码核心)
    • 数据库名
    • 字符集 (Character Set):必须选择 utf8mb4 (支持生僻字和 Emoji,与您的 SQL 脚本完美契合)。
    • 排序规则 (Collation):选择 utf8mb4_general_ci
  4. 点击 “确定”

第三步:激活数据库

  1. 在左侧列表中,找到您刚刚新建的数据库。
  2. 双击它!
  3. 确保它的图标变成了打开的状态(或者名字变成了高亮/粗体)。这相当于告诉 Navicat:“我接下来的所有操作,都要在这个数据库里进行!

第四步:运行 SQL 文件(开始导入)

  1. 右键点击这个已打开的数据库。
  2. 选择 “运行 SQL 文件 (Execute SQL File...)”
  3. 在弹出的窗口中:
    • 文件:点击右侧的 ... 按钮,找到您电脑上的 要导入的 SQL文件。
    • 遇到错误时继续 (Continue on error):建议勾选(防止因为个别无关紧要的警告导致整个导入中断)。
    • 使用事务 (Use Transaction):建议勾选(保证数据完整性,要么全成功,要么全失败)。(如果有的话)
  4. 点击 “开始 (Start)”
  5. 等待进度条跑完,直到提示 “Finished successfully” (成功完成)。点击关闭。

第五步:刷新验证

  1. 导入完成后,左侧的表列表可能还是空的。
  2. 右键点击新数据库下的 “表 (Tables)” 文件夹。
  3. 选择 “刷新 (Refresh)”
  4. 此时能看到各个表