Spring 框架入门:从零开始构建你的第一个应用

1. 引言

Spring 是 Java 领域最受欢迎的企业级应用开发框架之一。它通过提供全面的编程和配置模型,简化了企业级 Java 应用的开发,使其更加模块化、可测试和可维护。无论是构建微服务、Web 应用还是数据访问层,Spring 都提供了强大的支持。

本文将带你从零开始,了解 Spring 的核心概念,并动手搭建你的第一个 Spring Boot 应用。

2. Spring 核心概念

在深入代码之前,理解 Spring 的几个核心概念至关重要:

  • 控制反转 (IoC):这是 Spring 的基石。传统上,对象自己负责创建和管理其依赖。而在 IoC 模式下,这个责任被转移给了"容器"(Spring IoC 容器)。你只需定义好对象(Bean)及其依赖关系,容器负责实例化、组装和管理它们的生命周期。
  • 依赖注入 (DI):这是实现 IoC 的一种具体方式。Spring 容器通过构造函数、Setter 方法或字段直接将依赖对象"注入"到目标对象中,而不是让目标对象自己去查找或创建依赖。
  • 面向切面编程 (AOP):允许你将跨越应用程序多个模块的横切关注点(如日志、事务、安全)模块化。AOP 让你能专注于核心业务逻辑,而将通用功能(切面)分离出来。
  • Spring Boot:Spring 的一个子项目,旨在简化 Spring 应用的初始搭建和开发过程。它通过"约定大于配置"的原则,提供了自动配置、内嵌 Web 服务器(如 Tomcat)和"起步依赖"(Starter),让你能快速创建独立运行的、生产级的 Spring 应用。

3. 环境准备

开始之前,请确保你的开发环境已就绪:

  1. Java 开发工具包 (JDK):Spring Boot 3.x 需要 JDK 17 或更高版本。推荐使用 JDK 17 或 21。
  2. 构建工具:可以选择 Maven 或 Gradle。本文将以 Maven 为例。
  3. 集成开发环境 (IDE):推荐使用 IntelliJ IDEA(社区版或旗舰版)、Spring Tools Suite (STS) 或 VS Code。
  4. 网络连接:用于从 Maven 中央仓库下载依赖。

4. 创建第一个 Spring Boot 应用

我们将使用 Spring Initializr 来快速生成项目骨架,这是 Spring 官方提供的项目初始化工具。

步骤 1:访问 Spring Initializr

打开浏览器,访问 https://start.spring.io

步骤 2:配置项目

在页面上进行如下配置:

  • Project: Maven
  • Language: Java
  • Spring Boot: 选择最新的稳定版本(如 3.x.x)
  • Group : com.example (你的组织域名,可自定义)
  • Artifact : demo (你的项目名,可自定义)
  • Name : demo
  • Description : Demo project for Spring Boot
  • Package name : com.example.demo
  • Packaging: Jar
  • Java: 17 或 21

步骤 3:添加依赖

Dependencies 区域,点击 "ADD DEPENDENCIES",搜索并添加:

  • Spring Web: 用于构建 Web 应用,包含 RESTful API 支持。

步骤 4:生成项目

点击页面底部的 GENERATE 按钮,下载生成的 demo.zip 文件。

步骤 5:导入项目

解压 demo.zip 文件,并用你的 IDE(如 IntelliJ IDEA)打开解压后的文件夹。

5. 项目结构与代码

导入项目后,你会看到类似如下的目录结构:

复制代码
demo/
├── src/
│   ├── main/
│   │   ├── java/com/example/demo/
│   │   │   ├── DemoApplication.java  // 主启动类
│   │   │   └── controller/           // (待创建) 控制器层
│   │   └── resources/
│   │       ├── static/               // 静态资源
│   │       ├── templates/            // 模板文件
│   │       └── application.properties // 配置文件
│   └── test/                         // 测试代码
└── pom.xml                           // Maven 配置文件

步骤 6:创建 REST 控制器

src/main/java/com/example/demo/ 目录下,新建一个 controller 包,并在其中创建 HelloController.java 文件:

java 复制代码
package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController // 声明这是一个 REST 控制器
public class HelloController {

    @GetMapping("/hello") // 映射 HTTP GET 请求到 /hello 路径
    public String sayHello() {
        return "Hello, Spring Boot!";
    }
}

步骤 7:运行应用

找到 src/main/java/com/example/demo/DemoApplication.java 文件,这是 Spring Boot 应用的入口。直接运行其中的 main 方法。

java 复制代码
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // 核心注解,启用自动配置和组件扫描
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

控制台会输出大量日志,当你看到类似 Tomcat started on port(s): 8080 (http) 的信息时,说明应用已成功启动。

步骤 8:测试应用

打开浏览器或使用 curl 命令,访问 http://localhost:8080/hello。你将看到页面上显示:Hello, Spring Boot!

恭喜!你的第一个 Spring Boot 应用已经成功运行。

6. 核心注解解析

让我们回顾一下代码中用到的几个关键注解:

  • @SpringBootApplication :这是一个组合注解,包含了 @SpringBootConfiguration@EnableAutoConfiguration@ComponentScan。它标记了主配置类,并开启了 Spring Boot 的自动配置和组件扫描。
  • @RestController :组合了 @Controller@ResponseBody。它告诉 Spring 这个类是一个控制器,并且其所有方法的返回值都应直接写入 HTTP 响应体,而不是跳转到视图。
  • @GetMapping :是 @RequestMapping(method = RequestMethod.GET) 的简写。它将 HTTP GET 请求映射到特定的处理方法上。
相关推荐
雨落在了我的手上1 小时前
Java数据结构(九):栈和队列
java·开发语言·数据结构
卷无止境1 小时前
Python 相对导入与绝对导入的坑:从原理到工程实践
后端·python
卷无止境2 小时前
Python调试那点事儿:从pdb到日志系统的实战指南
后端·python
明月_清风2 小时前
🧙 零知识证明(ZKP)入门:隐私与扩容的黑魔法
后端·web3
明月_清风2 小时前
🏦 RWA 现实世界资产代币化:万亿市场的入门指南
后端·web3
春生野草2 小时前
个人笔记--大顶堆和基数排序
java·数据结构·算法
高铭杰2 小时前
Golang sync.Mutex实现原理学习
java·学习·golang
陈随易10 小时前
在 VSCode 里,把项目一键部署到服务器
前端·后端·程序员
鱼樱前端11 小时前
我用 Claude Code 后,编码效率翻 3 倍。但更值钱的是别的。
前端·后端·ai编程