1. 为什么选择SpringBoot搭建网页?
十年前我刚入行Java开发时,搭建一个简单的Web项目需要配置XML、部署Tomcat、处理各种依赖冲突,光是环境准备就能耗掉一整天。现在用SpringBoot,从零到显示第一个网页只需要15分钟——这就是为什么它成为Java开发者首选的Web框架。
SpringBoot本质上是对Spring框架的"懒人包"封装,它通过三个核心机制简化了Web开发:
- 自动配置(Auto-Configuration):根据classpath中的jar包自动配置Spring应用
- 起步依赖(Starter Dependencies):通过
spring-boot-starter-web等预设依赖包解决版本冲突 - 内嵌服务器(Embedded Server):默认集成Tomcat,无需单独部署
实际开发中我推荐使用IntelliJ IDEA Ultimate版(社区版也支持但功能略少),配合Maven 3.6+版本。最近帮团队新人配置环境时发现,JDK版本最好选择8/11/17这些LTS长期支持版,避免使用最新非LTS版本可能出现的兼容性问题。
2. 开发环境准备
2.1 工具安装清单
- JDK:Oracle JDK或OpenJDK均可,建议1.8/11/17
bash复制# 验证安装 java -version javac -version - Maven:建议3.6+
bash复制mvn -v # 查看版本 - IDE:IntelliJ IDEA(推荐)或Eclipse
- 浏览器:Chrome/Firefox开发者版
2.2 Maven配置优化
国内开发者一定要配置阿里云镜像,否则依赖下载慢到怀疑人生。修改~/.m2/settings.xml:
xml复制<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
遇到过有同事的IDEA默认使用自带的Maven,导致配置不生效。记得在IDEA设置中指定本地Maven路径(File > Settings > Build > Maven)
3. 创建第一个SpringBoot项目
3.1 通过IDEA初始化项目
- 新建项目选择 Spring Initializr
- 关键配置项:
- Project SDK:选已安装的JDK
- Packaging:Jar(SpringBoot推荐方式)
- Java Version:与JDK版本对应
- Dependencies:勾选 Spring Web

3.2 项目结构解析
生成的标准目录结构:
code复制src
├── main
│ ├── java
│ │ └── com/example/demo
│ │ ├── DemoApplication.java # 启动类
│ │ └── controller/HelloController.java
│ └── resources
│ ├── static # 静态资源(JS/CSS/图片)
│ ├── templates # 模板文件
│ └── application.properties # 配置文件
└── test # 测试代码
新手常见误区是把HTML文件放在
static目录下。实际上应该用templates存放动态模板(如Thymeleaf),static放纯静态资源。
4. 编写第一个网页控制器
4.1 基础Controller示例
在controller包下创建HelloController.java:
java复制@Controller // 不是@RestController!
public class HelloController {
@GetMapping("/hello")
public String sayHello(Model model) {
model.addAttribute("message", "你好,SpringBoot!");
return "hello"; // 对应templates/hello.html
}
}
4.2 模板文件配置
在resources/templates下创建hello.html:
html复制<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>第一个SpringBoot页面</title>
</head>
<body>
<h1 th:text="${message}">默认文本</h1>
</body>
</html>
注意这里用Thymeleaf模板引擎(SpringBoot默认支持),
th:text是它的属性语法。如果不想用模板引擎,可以用@RestController返回纯字符串,但这样就无法实现动态页面了。
5. 运行与调试技巧
5.1 启动方式选择
- IDEA直接运行:右键启动类的
main()方法 - 命令行启动:
bash复制
mvn spring-boot:run - 打包后运行:
bash复制
mvn package java -jar target/demo-0.0.1-SNAPSHOT.jar
5.2 开发期实用配置
在application.properties中添加:
properties复制# 开启模板热加载
spring.thymeleaf.cache=false
# 修改端口
server.port=8081
# 显示详细的启动日志
debug=true
遇到过有同事修改了代码但页面没变化,就是因为没关缓存。另外建议安装SpringBoot DevTools工具,可以实现代码修改后自动重启:
xml复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
6. 常见问题排坑指南
6.1 访问404错误排查
- 检查Controller是否在启动类同级或子包下
- 确认注解是
@Controller不是@RestController - 查看控制台是否输出
Mapped "{[/hello]}"
6.2 模板引擎不生效
- 确保文件在
templates目录下 - 检查是否添加了Thymeleaf命名空间
- 查看是否错误使用了
static目录
6.3 端口冲突处理
properties复制# 随机端口配置
server.port=0
启动后查看日志输出:
code复制Tomcat started on port(s): 54321 (http)
7. 项目优化建议
7.1 目录结构规范
推荐的企业级结构:
code复制com
└── company
└── project
├── Application.java
├── config # 配置类
├── controller # 控制器
├── service # 业务逻辑
├── repository # 数据访问
└── model # 数据实体
7.2 添加静态资源
在resources/static下可以放:
- CSS文件 →
/css/style.css - JS文件 →
/js/app.js - 图片 →
/images/logo.png
访问路径直接是:
html复制<link th:href="@{/css/style.css}" rel="stylesheet">
7.3 使用Bootstrap快速美化
在hello.html头部添加:
html复制<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
然后就可以用Bootstrap组件了:
html复制<div class="alert alert-success" th:text="${message}"></div>
8. 进阶路线建议
掌握基础网页开发后,可以继续学习:
- 表单处理:
@PostMapping和数据绑定 - 数据库集成:Spring Data JPA + MySQL
- 用户认证:Spring Security配置
- API开发:
@RestController+ JSON响应 - 前后端分离:Vue/React整合
最近在团队项目中我们发现,配合SpringBoot Actuator可以快速实现健康检查:
xml复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
访问/actuator/health就能看到应用状态,这对运维部署特别有用。
