【Java EE】快速上手Spring Boot

文章目录

    • 一、Maven
    • [二、SpringBoot 实战:创建第一个 HelloWorld 项目](#二、SpringBoot 实战:创建第一个 HelloWorld 项目)
      • [1. 项目目录结构解析](#1. 项目目录结构解析)
      • [2. 编写 HelloWorld 代码](#2. 编写 HelloWorld 代码)
      • [3. 访问项目](#3. 访问项目)
      • [4. 常见错误排查](#4. 常见错误排查)
    • [三、SpringBoot 核心优势总结](#三、SpringBoot 核心优势总结)

在 Java 开发领域,Spring 框架的重要性不言而喻,但它繁琐的配置曾让不少开发者望而却步。而 SpringBoot 的出现,以"约定大于配置"的理念,极大简化了 Spring 项目的开发流程。

一、Maven

Maven 是 SpringBoot 项目依赖管理和构建的核心工具,理解它的功能和配置,能让后续开发事半功倍。

1. 什么是 Maven?

Maven 是一款基于 POM(Project Object Model,项目对象模型) 的项目管理工具。简单来说,它通过 pom.xml 文件自动获取项目所需的 jar 包,无需手动下载和添加,极大减少了依赖管理的工作量。

2. 为什么要用 Maven?

  • 简化开发流程:自动处理依赖关系,避免手动找包、导包的繁琐操作。
  • 统一项目构建:提供跨平台(Linux、Windows、MacOS)的标准化构建流程,支持编译、测试、打包、发布等一键操作。
  • 减少开发 Bug:通过统一依赖版本,避免因版本不一致导致的兼容性问题。

3. Maven 核心功能

(1)项目构建

Maven 提供了一套标准化的生命周期命令,常见命令如下:

  • compile:编译源代码,生成 class 文件。
  • test:执行测试代码,验证功能正确性。
  • package:将项目打包为 jar 包或 war 包(jar 包用于普通项目,war 包用于 Web 项目)。
  • clean:清理项目编译生成的临时文件(如 target 目录)。

在 IDEA 中,只需在 Maven 面板点击对应命令,即可完成相应操作,例如点击 package 可直接生成项目包。

(2)依赖管理

依赖即项目运行所需的 jar 包,Maven 通过 pom.xml 中的 <dependencies> 标签管理依赖,核心配置如下:

xml 复制代码
<dependencies>
    <!-- MySQL 驱动依赖 -->
    <dependency>
        <groupId>mysql</groupId> <!-- 组织 ID,唯一标识依赖的开发组织 -->
        <artifactId>mysql-connector-java</artifactId> <!-- 项目 ID,唯一标识依赖本身 -->
        <version>8.0.30</version> <!-- 依赖版本号 -->
    </dependency>
</dependencies>

配置后点击 IDEA 中的 Reload All Maven Projects 按钮,Maven 会自动下载依赖并添加到项目中。

(3)依赖传递与排除
  • 依赖传递:若 A 依赖 B,B 依赖 C,Maven 会自动下载 A、B、C 三个依赖,无需手动配置 C,例如项目引入 Spring 核心依赖时,会自动下载其依赖的日志组件。
  • 依赖排除 :若某个间接依赖不需要,可通过 <exclusions> 标签排除,例如:
xml 复制代码
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>6.0.6</version>
    <!-- 排除 spring-jcl 依赖 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jcl</artifactId>
        </exclusion>
    </exclusions>
</dependency>

4. Maven 仓库:依赖从哪来?

Maven 依赖存储在仓库中,分为三类:

  • 本地仓库 :本地计算机的目录(.m2\repository),用于缓存下载的依赖,后续项目可直接复用。
  • 中央仓库 :Maven 官方维护的远程仓库(地址:https://repo1.maven.org/maven2/),存储全球绝大多数开源依赖。

当项目引入对应的依赖jar包时:如果本地仓库有,则直接引入;如果没有,则先去中央仓库下载jar包到本地,再引入

  • 私服:企业或团队搭建的私有仓库,用于存储内部依赖,优先从私服下载依赖,提升速度并保障安全性。

当maven需要下载资源时:如果本地仓库不存在,就向私服请求,私服存在就直接返回;私服不存在则先从中央仓库下载到私服,再返回到本地。

二、SpringBoot 实战:创建第一个 HelloWorld 项目

SpringBoot 是 Spring 框架的"脚手架",能快速搭建 Spring 项目,无需手动配置 Web 服务器(如 Tomcat)。

1. 项目目录结构解析

SpringBoot 项目目录遵循"约定大于配置",核心目录如下:

复制代码
demo
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com.example.demo  # 源代码目录
│   │   │       ├── DemoApplication.java  # 项目启动类(含 main 方法)
│   │   │       └── HelloController.java  # 自定义控制器(手动创建)
│   │   └── resources  # 资源目录
│   │       ├── static  # 静态资源(JS、CSS、HTML)
│   │       ├── templates  # 动态模板(Thymeleaf)
│   │       └── application.properties  # 项目配置文件
│   └── test  # 测试代码目录
└── pom.xml  # Maven 配置文件

2. 编写 HelloWorld 代码

  1. com.example.demo 包下创建 HelloController 类:
java 复制代码
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController  // 标识此类为 Web 控制器,返回 JSON 或字符串
public class HelloController {

    // 配置请求路径:http://127.0.0.1:8080/hello
    @RequestMapping("/hello")
    public String sayHi() {
        return "Hello world";  // 响应内容
    }
}
  1. 找到项目启动类 DemoApplication.java(有 @SpringBootApplication 注解),点击类左侧的"Run"按钮,启动项目。

3. 访问项目

项目启动成功后,打开浏览器,输入地址 http://127.0.0.1:8080/hello,页面显示"Hello, world",表示项目运行成功。

4. 常见错误排查

(1)404 错误:资源不存在
  • 原因 1:URL 路径错误(少写、错写路径)。
  • 原因 2:控制器注解错误(如用 @Controller 代替 @RestController@Controller 需配合模板使用,返回字符串会被当作模板路径)。
  • 解决:检查 URL 与 @RequestMapping 配置是否一致,确保注解正确。
(2)500 错误:服务器内部错误
  • 原因:代码逻辑错误(空指针异常)。
  • 解决:查看 IDEA 控制台的异常日志,定位错误代码行(如 int res = 10/0 会触发算术异常),修复逻辑错误。
(3)无法访问网站:连接被拒绝
  • 原因:SpringBoot 项目未启动成功(如端口被占用、JDK 版本不匹配)。
  • 解决:检查 IDEA 控制台是否有启动错误,若端口被占用,可在 application.properties 中配置新端口。

三、SpringBoot 核心优势总结

  1. 快速集成依赖:通过勾选依赖即可自动引入相关 jar 包,无需手动配置。
  2. 内置 Web 服务器:默认集成 Tomcat,无需手动安装和配置,启动项目即可访问。
  3. 简化配置 :无需繁琐的 XML 配置,通过注解(如 @SpringBootApplication)和 application.properties 即可完成配置。
  4. 便于监控:支持多种监控指标,可快速了解项目运行状态。
相关推荐
從南走到北5 小时前
JAVA国际版一对一视频交友视频聊天系统源码支持H5 + APP
java·微信·微信小程序·小程序·音视频·交友
好好研究5 小时前
JAVAEE知识整理之AJAX、JSON
ajax·java-ee·json·1024程序员节
go__Ahead5 小时前
【Java-JMM】Happens-before原则
java
pcm1235675 小时前
java中的单例模式
java·开发语言·单例模式
xxxxxxllllllshi5 小时前
【Elasticsearch查询DSL API完全指南:从入门到精通】
java·大数据·elasticsearch·搜索引擎·面试·全文检索·jenkins
自在极意功。5 小时前
动态规划核心原理与高级实战:从入门到精通(Java全解)
java·算法·动态规划·最优子结构·重叠子问题
oioihoii6 小时前
当无符号与有符号整数相遇:C++中的隐式类型转换陷阱
java·开发语言·c++
鼠鼠我捏,要死了捏6 小时前
深入剖析Java垃圾回收性能优化实战指南
java·性能优化·gc
Pota-to成长日记6 小时前
代码解析:基于时间轴(Timeline)的博客分页查询功能
java