Spring Boot新手教程:Java Web开发入门 – wiki基地


Spring Boot新手教程:Java Web开发入门

前言

在当今的Java开发领域,Spring Boot 已经成为构建独立、生产级别的Spring应用程序的首选框架。它旨在简化Spring应用程序的初始设置和开发过程,让开发者能够快速启动项目并专注于业务逻辑。如果你是Java Web开发新手,或者想快速掌握Spring框架,那么Spring Boot无疑是你的最佳选择。

本教程将引导你从零开始,搭建一个简单的Spring Boot Web应用程序,并了解其核心概念。

1. 为什么选择 Spring Boot?

在深入学习之前,我们先来了解一下 Spring Boot 的优势:

  • 简化配置: 告别繁琐的XML配置,Spring Boot 采用“约定大于配置”的原则,提供了大量的自动配置,大大减少了开发者的工作量。
  • 内嵌服务器: 无需额外部署WAR包到Tomcat等服务器,Spring Boot 应用可以直接运行,因为它内嵌了Tomcat、Jetty 或 Undertow 等服务器。
  • 独立运行: 可以打包成可执行的JAR文件,直接通过 java -jar 命令运行。
  • 生产就绪特性: 提供了健康检查、外部化配置、度量指标等功能,方便监控和管理生产环境的应用。
  • 强大的生态: 继承了Spring框架的强大生态系统,可以轻松集成Spring Data、Spring Security等模块。

2. 准备工作 (Prerequisites)

在开始之前,请确保你的开发环境已安装以下工具:

  1. Java Development Kit (JDK) 8 或更高版本: 推荐使用 JDK 11 或 17。
  2. 构建工具:
    • Maven: Apache Maven 是最流行的Java项目管理和理解工具。
    • Gradle: 另一种现代化的构建工具,在某些方面比Maven更灵活。
    • 本教程将以 Maven 为例。
  3. 集成开发环境 (IDE): 推荐使用以下任意一款:
    • IntelliJ IDEA (Ultimate 或 Community 版)
    • Eclipse with Spring Tools 4
    • VS Code with Java Extension Pack

3. 创建你的第一个 Spring Boot 项目

我们将使用 Spring Initializr 来快速生成项目骨架。Spring Initializr 是一个Web工具,可以帮助你生成带有你所需依赖的Spring Boot项目。

  1. 打开浏览器,访问 Spring Initializr

  2. 在页面上,进行以下配置:

    • Project: 选择 Maven Project
    • Language: 选择 Java
    • Spring Boot: 选择一个稳定的版本 (例如:3.2.x)。
    • Project Metadata:
      • Group: com.example (通常是你的公司或组织域名倒序)
      • Artifact: demo (你的项目名称)
      • Name: demo (默认为 Artifact 名称)
      • Description: Demo project for Spring Boot
      • Package name: com.example.demo
      • Packaging: Jar
      • Java: 选择你的JDK版本 (例如:17)。
    • Dependencies (依赖): 点击 “Add Dependencies…” 并搜索添加:
      • Spring Web: 用于构建Web应用,包含内嵌的Tomcat。
  3. 配置完成后,点击页面下方的 Generate 按钮。这将下载一个名为 demo.zip 的压缩文件。

  4. 将下载的 demo.zip 文件解压到你喜欢的工作目录中。

4. 导入项目到 IDE

以 IntelliJ IDEA 为例:

  1. 打开 IntelliJ IDEA。
  2. 选择 File -> Open...
  3. 导航到你解压的 demo 文件夹,然后点击 Open
  4. IntelliJ IDEA 会自动检测这是一个 Maven 项目,并开始下载所需的依赖。请耐心等待,直到所有依赖下载完成。

5. 项目结构概览

解压并导入项目后,你会看到类似这样的目录结构:

demo/
├── pom.xml # Maven 项目配置文件
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/demo/
│ │ │ └── DemoApplication.java # Spring Boot 应用程序主类
│ │ └── resources/
│ │ ├── application.properties # 应用程序配置文件
│ │ ├── static/ # 静态资源 (HTML, CSS, JS)
│ │ └── templates/ # 模板文件 (Thymeleaf, FreeMarker等)
│ └── test/
│ └── java/
│ └── com/example/demo/
│ └── DemoApplicationTests.java # 单元测试类
└── .gitignore # Git 忽略文件

关键文件说明:

  • pom.xml: Maven项目的核心配置文件,声明了项目的依赖、构建插件等信息。
  • DemoApplication.java: Spring Boot 应用程序的入口点。
  • application.properties: 应用程序的配置文件,你可以配置端口、数据库连接等信息。

6. 编写你的第一个 Web API (Hello World)

现在,让我们来编写一个简单的 RESTful API,当访问特定URL时返回“Hello, Spring Boot!”。

  1. 打开 src/main/java/com/example/demo/DemoApplication.java 文件。
    你会看到类似如下的代码:

    “`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);
    }
    

    }
    “`

    • @SpringBootApplication: 这是一个组合注解,包含了 @Configuration (标记这是一个配置类), @EnableAutoConfiguration (启用Spring Boot的自动配置机制), 和 @ComponentScan (扫描当前包及其子包下的组件)。它是 Spring Boot 应用的核心。
    • main 方法: 这是标准的Java应用程序入口点,SpringApplication.run() 方法会启动Spring应用上下文。
  2. 在同一个 com.example.demo 包下,创建一个新的 Java 类,命名为 HelloController.java

  3. HelloController.java 中添加以下代码:

    “`java
    package com.example.demo;

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

    @RestController // 1. 标记这个类是一个RESTful控制器
    public class HelloController {

    @GetMapping("/hello") // 2. 将HTTP GET请求映射到 /hello 路径
    public String hello() {
        return "Hello, Spring Boot!"; // 3. 返回一个字符串作为响应体
    }
    

    }
    “`

    • @RestController: 这是 @Controller@ResponseBody 的组合注解。
      • @Controller 标记一个类为Spring MVC的控制器。
      • @ResponseBody 表示该方法的返回值直接作为HTTP响应体,而不是解析为视图名称。这对于构建 RESTful API 非常有用。
    • @GetMapping("/hello"): 这是一个组合注解,用于处理HTTP GET请求,并将其映射到 /hello 这个URL路径。当用户访问 http://localhost:8080/hello 时,hello() 方法就会被调用。
    • public String hello(): 这是一个简单的方法,它返回一个字符串。Spring Boot 会自动将这个字符串转换为HTTP响应体的内容。

7. 运行你的 Spring Boot 应用程序

现在,你的第一个 Spring Boot Web 应用已经准备就绪!

  1. 在 IntelliJ IDEA 中,找到 DemoApplication.java 文件。
  2. 右键点击文件内容中的 main 方法,选择 Run 'DemoApplication.main()'
    或者,你也可以点击类名旁边的绿色播放按钮。

  3. 观察 IDE 的控制台输出。你会看到 Spring Boot 应用程序启动的日志,其中会显示内嵌的 Tomcat 服务器正在端口 8080 上运行。
    ...
    Tomcat initialized with port(s): 8080 (http)
    ...
    Started DemoApplication in X.XXX seconds (process running for Y.YYY)

8. 测试你的 Web API

应用程序成功启动后,你可以通过浏览器或任何API测试工具(如 Postman、Insomnia)来访问你的API。

  1. 打开你的Web浏览器。
  2. 在地址栏中输入: http://localhost:8080/hello
  3. 按下回车键。

你将会在浏览器页面上看到输出:

Hello, Spring Boot!

恭喜你!你已经成功创建并运行了你的第一个 Spring Boot Web 应用程序!

9. 配置应用程序 (可选)

如果你想修改应用程序的默认端口(默认为8080),可以在 src/main/resources/application.properties 文件中进行配置。

  1. 打开 application.properties 文件。
  2. 添加以下行来将端口改为 8081

    properties
    server.port=8081

  3. 保存文件。

  4. 重新运行 DemoApplication。你会发现应用程序现在在 8081 端口上启动。
    然后你就可以通过 http://localhost:8081/hello 访问你的API了。

10. 总结与展望

通过本教程,你已经掌握了 Spring Boot 的基本用法:

  • 了解了 Spring Boot 的优势。
  • 学会了使用 Spring Initializr 创建项目。
  • 熟悉了 Spring Boot 项目的基本结构。
  • 编写并运行了一个简单的 RESTful API。
  • 了解了如何配置应用程序端口。

这只是 Spring Boot 世界的冰山一角。接下来,你可以继续学习以下内容,进一步提升你的 Java Web 开发技能:

  • RESTful API 开发: 学习更多 HTTP 方法 (POST, PUT, DELETE),路径变量 (@PathVariable) 和请求参数 (@RequestParam) 的使用。
  • 数据持久化: 集成 Spring Data JPA 和 H2 内存数据库或 MySQL,实现数据的增删改查。
  • 模板引擎: 使用 Thymeleaf 或 FreeMarker 构建动态Web页面。
  • 依赖注入 (DI): 深入理解 Spring IoC 容器和 @Autowired 注解。
  • 日志: 配置和使用 SLF4J/Logback 进行日志管理。
  • 安全性: 使用 Spring Security 保护你的应用程序。
  • 测试: 编写单元测试和集成测试。

祝你在 Spring Boot 的学习之旅中一切顺利!


滚动至顶部