Spring Boot入门教程

Spring Boot 作为当下最流行的 Java 开发框架之一,以其 "约定优于配置" 的理念,极大简化了 Spring 应用的开发流程。本文将从 Spring Boot 基础介绍入手,一步步教你搭建项目、编写 HelloWorld 程序、配置全局文件,以及最终的项目发布,全程干货,新手友好!

一、Spring Boot 核心介绍

1.1 什么是 Spring Boot

Spring Boot 是 Pivotal 团队推出的全新框架,"Boot" 意为 "引导",它并非对 Spring 功能的增强,而是提供了一种快速开发 Spring 应用的方式,让开发者摆脱繁杂的配置,专注于业务逻辑。

1.2 Spring Boot 核心特点

  • 嵌入式 Servlet 容器:内置 Tomcat/Jetty/Undertow,无需打包成 WAR 文件部署;
  • 简化 Maven 配置:通过 "starter" 启动器一键导入所需依赖,无需手动管理 jar 包;
  • 自动配置:提供大量自动配置类,零 XML 配置即可实现 Spring 核心功能;

二、快速构建 Spring Boot 项目

Spring Boot 项目有两种主流构建方式:通过官方脚手架下载、手动搭建 Maven 工程,以下是详细步骤。

2.1 方式 1:官方脚手架下载

  1. 访问 Spring Boot 官方脚手架:http://start.spring.io/
  2. 选择构建工具(Maven Project)、Spring Boot 版本、项目基本信息(Group/Artifact);
  3. 点击 "GENERATE" 下载项目压缩包,解压即可使用。

2.2 方式 2:手动搭建 Maven 工程

步骤 1:创建空 Maven 工程
  • 新建 Maven 工程,不使用骨架
  • 填写项目坐标(GroupId/ArtifactId/Version);
  • 设置项目本地保存路径。
步骤 2:配置 pom.xml
(1)继承 Spring Boot 父工程

父工程提供了依赖版本管理,避免版本冲突:

XML 复制代码
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.2.RELEASE</version>
    <relativePath/> <!-- 从仓库查找父工程 -->
</parent>
(2)设置编码格式
XML 复制代码
<!-- 项目源码及编译输出的编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
(3)添加 Web 启动器

引入 spring-boot-starter-web,自动导入 Web 开发所需依赖(Tomcat + Spring MVC 等):

XML 复制代码
<dependencies>
    <!-- Spring Boot Web 启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
步骤 3:创建启动类

启动类是 Spring Boot 项目的入口,需添加 @SpringBootApplication 注解:

java 复制代码
package com.hg;

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

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

2.3 核心概念:Spring Boot Starter

(1)Starter 解决的问题
  • 依赖混乱:手动导入 jar 包易出错、难管理;
  • 配置繁琐:重复配置数据库、事务、Web 等环境,降低开发效率。
(2)Starter 是什么?

Starter 是 Spring Boot 封装的 "功能场景包",引入一个 Starter,即可自动导入该场景下的所有依赖 + 自动配置环境。例如:

  • spring-boot-starter-web:全栈 Web 开发(Tomcat + Spring MVC);
  • spring-boot-starter-jpa:JPA 操作数据库;
  • spring-boot-starter-redis:Redis 操作;
(3)Starter 命名规范
  • 官方 Starter:spring-boot-starter-模块名(如 spring-boot-starter-web);
  • 第三方 Starter:模块名-spring-boot-starter(如 mybatis-spring-boot-starter)。

三、入门案例:HelloWorld

3.1 编写 Controller

创建控制器类,实现简单的接口返回:

java 复制代码
package com.hg.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

@Controller
public class HelloWorld {
    @RequestMapping("/hello")
    @ResponseBody
    public Map<String, Object> hello() {
        Map<String, Object> map = new HashMap<>();
        map.put("msg", "HelloWorld");
        return map;
    }
}

3.2 启动类位置要求

启动类需放在 Controller 同包 / 上一级包 下,否则无法扫描到 Controller:

java 复制代码
com.hg
├── Application.java (启动类)
└── controller
    └── HelloWorld.java (控制器)

3.3 自定义启动 Banner(可选)

  1. 访问 Banner 生成网站:http://www.bootschool.net/ascii
  2. 生成自定义字符画,保存为 banner.txt 放入 resources 目录;
  3. 启动项目,控制台会显示自定义 Banner。

四、全局配置文件

Spring Boot 提供全局配置文件(application.properties/application.yml),用于修改框架默认配置,默认放在 resources 目录下。

4.1 properties 格式

(1)修改 Tomcat 端口
java 复制代码
server.port=8888

2)修改项目访问路径

java 复制代码
server.servlet.context-path=/springboot

4.2 yml 格式(推荐)

yml 是树状结构配置文件,语法更简洁,注意:

  • : 分割键值对,冒号后必须加空格;
  • 缩进用空格(禁止 Tab),左对齐为同一层级。
配置示例
java 复制代码
server:
  port: 8090
  servlet:
    context-path: /springboot

五、项目发布方式

Spring Boot 支持两种发布方式:Jar 包(内置容器)、War 包(部署到外部 Tomcat)。

5.1 方式 1:Jar 包发布(推荐)

步骤 1:添加打包插件

pom.xml 中添加 Spring Boot 打包插件:

XML 复制代码
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
步骤 2:打包
  • 打开 Maven 视图,执行 package 命令;
  • 打包完成后,target 目录下生成 xxx.jar 包。
步骤 3:运行 Jar 包

打开终端,执行命令:

bash 复制代码
java -jar xxx.jar

5.2 方式 2:War 包发布

步骤 1:修改打包类型
XML 复制代码
<packaging>war</packaging>
步骤 2:排除内置 Tomcat 依赖(避免冲突)
XML 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope> <!-- 仅编译时有效 -->
</dependency>
步骤 3:自定义 War 包名称
XML 复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <warName>hello</warName> <!-- 自定义war包名 -->
    </configuration>
</plugin>
步骤 4:修改启动类

继承 SpringBootServletInitializer,重写 configure 方法:

java 复制代码
package com.hg;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
步骤 5:打包并部署
  • 执行 package 打包,生成 hello.war
  • 将 War 包放入外部 Tomcat 的 webapps 目录,启动 Tomcat 即可。

总结

本文从 Spring Boot 基础概念到实战操作,覆盖了项目搭建、核心配置、入门案例、项目发布全流程。Spring Boot 的核心优势是 "简化配置、快速开发",掌握本文内容,即可快速上手 Spring Boot 开发。后续还会分享 Spring Boot 核心原理、数据源配置、事务管理等进阶内容,敬请关注!

相关推荐
左左右右左右摇晃2 小时前
JDK 1.7 ConcurrentHashMap——分段锁
java·开发语言·笔记
是小蟹呀^2 小时前
Java抽象类详解:从入门到精通
java·抽象类
IT 行者2 小时前
Spring Boot 集成 JavaMail 163邮箱配置详解
java·spring boot·后端
lzhdim2 小时前
SQL 入门 7:SQL 聚合与分组:函数、GROUP BY 与 ROLLUP
java·服务器·数据库·sql·mysql
弹简特2 小时前
【JavaEE】Mybatis实现分页查询功能
java·java-ee·mybatis
烤麻辣烫2 小时前
I/O流 基础流
java·开发语言·学习·intellij-idea
Jasonakeke2 小时前
我的编程来时路
java·c++·python
Yvonne爱编码2 小时前
Java 中的 hashCode () 与 equals () 核心原理、契约规范、重写实践与面试全解
java·开发语言·数据结构·python·hash
gelald2 小时前
JVM - 运行时内存模型
java·jvm·后端