一些基础和问题解决

构建企业级微服务脚手架

前置准备

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

  1. 找到电脑上的 Maven 配置文件(通常在 C:\Users\用户名\.m2\settings.xml 或 Maven 安装目录的 conf/settings.xml)。

  2. 用记事本打开,找到 <mirrors> 标签,把里面的内容替换为阿里云镜像:

    xml 复制代码
    <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 的版本:

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:

  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 专属依赖:

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

  1. 删除无用文件 (取消勾选 Safe delete安全删除):
    • 删掉根目录下的 HELP.md(没用的帮助文档)。
    • 删掉 mvnw 和 mvnw.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 复制代码
<?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. 点击 Apply 和 OK。
  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> 标签,让框架自动找。
xml 复制代码
<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"),请务必改掉。
相关推荐
打工仔折腾 AI2 小时前
从Attention到BERT:双向预训练语言模型到底解决了什么问题
人工智能·后端·python·深度学习·语言模型·bert
lizhongxuan3 小时前
Agent Sandbox: Firecracker 任务生命周期
后端
YYYing.4 小时前
【设计模式系列 (七) 】桥接模式
c++·后端·设计模式·桥接模式
lizhongxuan4 小时前
Agent Sandbox: Firecracker 镜像、启动与 I/O
后端
打工仔折腾 AI5 小时前
飞牛OS上用Docker Compose部署ExerciseDiary运动记录并配置远程访问
运维·人工智能·后端·python·docker·容器·ai agent 实战
小蒜学长5 小时前
基于Python的动物救助站管理系统的设计与实现(代码+数据库+LW)
数据库·后端·python·django·动物救助
小小张说故事5 小时前
Python 中 __new__ 和 __init__ 到底谁才是构造函数?一文讲透区别与 5 个坑
后端·python
用户847172102846 小时前
.shot 文件格式规范
前端·后端
wang_shu_mo_ran7 小时前
Spring IoC和DI概念篇
java·后端·spring
Cheney Pan7 小时前
第4篇 Spring Boot 应用监控:Micrometer 与 JVM 指标
jvm·spring boot·后端·prometheus