Bootstrap

SpringBoot入门:快速构建第一个Web应用

前言

SpringBoot作为Java领域最流行的微服务框架之一,凭借其“约定优于配置”的理念,极大简化了Spring应用的初始搭建和开发过程。本文将手把手带你创建一个SpringBoot项目,并实现第一个REST接口,同时解析其核心机制。

一、SpringBoot简介与优势

1.1 什么是SpringBoot?

SpringBoot是Pivotal团队基于Spring框架推出的快速开发脚手架,核心目标是:

  • 零XML配置:通过注解和默认配置简化开发

  • 内嵌Web服务器:无需部署WAR包,直接运行JAR

  • 起步依赖:提供预置依赖组合(如spring-boot-starter-web

  • 生产级特性:监控、健康检查、外部化配置等开箱即用

1.2 对比传统Spring MVC开发

特性Spring MVCSpringBoot
项目创建手动配置web.xml、pom依赖Spring Initializr一键生成
内嵌服务器需部署到Tomcat/Jetty内置Tomcat/Jetty/Undertow
配置复杂度需显式配置组件自动配置(按需加载)
依赖管理手动管理版本冲突

starter统一管理依赖

二、使用Spring Initializr创建项目

2.1 通过官网创建

  1. 访问 https://start.spring.io

  2. 填写项目信息:

    Project: Maven
    Language: Java
    Spring Boot: 3.x (建议选择最新稳定版)
    Group: com.example
    Artifact: demo
    Dependencies: Spring Web

 

2.2 使用IDEA创建(快捷方式)

  1. 打开IntelliJ IDEA → File → New → Project

  2. 选择Spring Initializr,填写项目信息

  3. 勾选Spring Web依赖

  4. 完成创建后,项目结构如下:

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

 

三、编写第一个Hello World接口

com.example.demo包下新建HelloController.java

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

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, SpringBoot!";
    }
}
  • @RestController:组合了@Controller@ResponseBody,直接返回JSON数据

  • @GetMapping:等价于@RequestMapping(method = RequestMethod.GET)

3.2 启动应用

打开启动类DemoApplication.java,运行main方法:

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

 控制台输出以下日志表示启动成功:

Hello, SpringBoot!

3.3 测试接口

浏览器访问 http://localhost:8080/hello,页面显示:

Hello, SpringBoot!

 

四、内嵌Tomcat原理分析

4.1 内嵌服务器如何生效?

关键依赖spring-boot-starter-web包含:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>

SpringBoot通过条件装配自动配置Tomcat:

  • 当检测到类路径存在ServletTomcat类时

  • 创建TomcatServletWebServerFactory实例

4.2 启动流程核心代码

SpringApplication.run()方法中:

  1. 创建ApplicationContext

  2. 调用createWebServer()初始化Web服务器

  3. 加载ServletFilter(如DispatcherServlet)

  4. 启动Tomcat并绑定端口

4.3 与传统Tomcat部署对比

传统方式SpringBoot内嵌
部署形式WAR包部署到Tomcat/webapps目录直接执行JAR(含内嵌Tomcat)
服务器配置修改server.xmlapplication.properties配置
多环境适配需手动配置不同环境Profile一键切换

五、注意事项与常见问题

  1. 端口冲突
    若8080端口被占用,在application.properties中添加:

    server.port=8081

   2.依赖缺失
        确保pom.xml中包含: 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

 3.启动类位置
启动类需放在根包下,否则组件扫描可能失效。

;