当前位置: 首页 > news >正文

[架构之美]从零开始整合Spring Boot与Maven(十五)

[架构之美]从零开始整合Spring Boot与Maven(十五)

摘要:本文手把手教你通过Maven快速构建Spring Boot项目,涵盖项目初始化、自动配置、依赖管理及打包部署全流程,并附赠常见避坑指南。适合需要快速搭建企业级项目的开发者。

目录

  1. 环境要求
  2. 三种创建方式对比
  3. 项目结构与配置解析
  4. 编写RESTful接口
  5. 热部署配置
  6. 打包与运行
  7. 高频问题解决方案

一、环境准备

1.1 必需环境

工具推荐版本验证命令
JDK8+java -version
Apache Maven3.5.6+mvn -v
IntelliJ IDEA2021.3+-

1.2 Maven镜像加速

修改settings.xml,添加阿里云镜像(响应速度提升5倍):

<mirror><id>aliyun</id><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url><mirrorOf>central</mirrorOf>
</mirror>

二、3种创建方式详解

2.1 方式一:IDEA内置创建(推荐新手)

  1. File → New → Project

  2. 选择 Spring Initializr

    在这里插入图片描述

  3. 关键配置项:

    Project SDK: 1.8  #新项目建议openjdk 17 根据实际情况选择
    Group: com.example
    Artifact: springboot-demo
    Type: Maven
    Packaging: Jar
    Java Version: 24  #新项目建议java 17 根据实际情况选择
    
  4. 勾选依赖(按需选择):

    • Spring Web
    • Lombok
    • Spring Boot DevTools

在这里插入图片描述

5.创建成功

在这里插入图片描述

2.2 方式二:官网生成器(适合定制化)

访问 start.spring.io → 下载解压导入IDEA

在这里插入图片描述

解压后导入

在这里插入图片描述

2.3 方式三:手动创建(进阶)

  1. 创建Maven项目
  2. 添加Spring Boot父POM:
    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.8.RELEASE</version> //根据实际情况选择
    </parent>
    

三、核心配置文件解析

3.1 项目结构

src
├── main
│   ├── java
│   │   └── com/example/demo
│   │       └── DemoApplication.java  # 启动类
│   └── resources
│       ├── application.yml          # 主配置文件
│       └── static                   # 静态资源
pom.xml                              # Maven依赖管理

3.2 关键POM配置

<dependencies><!-- Web开发核心依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 热部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency>
</dependencies><!-- 打包插件 -->
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

四、开发第一个REST接口

4.1 创建Controller

@RestController
public class HelloController {@GetMapping("/hello")public String sayHello(@RequestParam(required = false) String name) {return "Hello, " + (name != null ? name : "Spring Boot");}
}

4.2 启动应用

  1. 运行 DemoApplication.java 中的main方法

    在这里插入图片描述

  2. 访问 http://localhost:8081/hello?name=mandao

在这里插入图片描述

五、热部署配置(修改代码免重启)

5.1 IDEA设置

  1. Settings → Build → Compiler → 勾选 Build project automatically

    在这里插入图片描述

5.2 测试热更新

修改Controller返回值 → 保存 → 刷新接口测试即刻生效

六、打包与部署

6.1 生成可执行JAR

mvn clean package -DskipTests

生成的JAR路径:target/springboot-demo-0.0.1-SNAPSHOT.jar

6.2 运行JAR包

java -jar target/springboot-demo-0.0.1-SNAPSHOT.jar

七、高频问题解决方案

Q1:端口冲突如何修改?

# application.yml
server:port: 8081  # 自定义端口

Q2:启动报错’Unable to find main class’

  • 检查启动类是否添加 @SpringBootApplication
  • 确认pom.xml中已配置spring-boot-maven-plugin

Q3:依赖下载卡顿?

  • 检查Maven镜像源配置
  • 执行强制更新:mvn clean install -U

Q4:静态资源访问404?

  • 确认资源文件放在resources/static目录
  • 清除浏览器缓存

八、最佳实践总结

  1. 依赖管理:优先使用spring-boot-starter-*官方组件
  2. 配置分层
    • application.yml 通用配置
    • application-dev.yml 开发环境
    • application-prod.yml 生产环境
  3. 监控建议:集成Spring Boot Actuator
# 启用健康检查
management:endpoints:web:exposure:include: health,info

扩展学习

  • IDEA创建Maven项目全流程

希望本教程对您有帮助,请点赞❤️收藏⭐关注支持!欢迎在评论区留言交流技术细节!

http://www.xdnf.cn/news/378919.html

相关文章:

  • AUTODL Chatglm2 langchain 部署大模型聊天助手
  • C语言初阶秘籍6
  • 二分法和牛顿迭代法解方程实根,详解
  • 第十九节:图像梯度与边缘检测- Laplacian 算子
  • 「OC」源码学习——cache_t的原理探究
  • C32-编程案例用函数封装获取两个数的较大数
  • IPFS与去中心化存储:重塑数字世界的基石
  • nuscenes_devkit工具
  • Windows:Powershell的使用
  • 进阶二:基于HC-SR04和LCD1602的超声波测距
  • 海纳思(Hi3798MV300)机顶盒遇到海思摄像头
  • 贪心算法专题(Part1)
  • AI大模型学习十七、利用Dify搭建 AI 图片生成应用
  • STL-to-ASCII-Generator 实用教程
  • SpringBoot2集成xxl-job详解
  • 大模型微调指南之 LLaMA-Factory 篇:一键启动LLaMA系列模型高效微调
  • 差动讯号(3)弱耦合与强耦合
  • Linux数据库篇、第一章_01MySQL5.7的安装部署
  • Java基础 5.10
  • 致远A8V5-9.0安装包(包含信创版)【附百度网盘链接】
  • LeetCode 热题 100 24. 两两交换链表中的节点
  • 计算机网络八股文--day1
  • suricata之日志截断
  • Python实例题:Python协程详解公开课
  • JAVA练习题(1) 卖飞机票
  • vue开发用户注册功能
  • 【入门】数字走向I
  • 求数组中的两数之和--暴力/哈希表
  • 构建休闲企业服务实训室:融合凯禾瑞华产品打造产教融合新生态
  • 红黑树删除的实现与四种情况的证明