JAVA--Spring Boot项目创建
Spring Boot项目创建
在开始Spring Boot开发之前,我们首先需要创建一个Spring Boot项目。以下是两个常用的项目初始化网站:
这些网站提供了可视化的界面,你可以:
- 选择项目的基本信息(如Group、Artifact、版本等)
- 选择所需的依赖(如Web、Thymeleaf、JPA等)
- 配置项目的构建工具(Maven或Gradle)
- 生成完整的项目结构
项目架构解析
在Spring Boot项目中,静态资源、模板页面和前端分离,分别存放在src/main/resources/static/、src/main/resources/templates/和前端应用中。

1. 静态资源访问流程
Actor(用户) → Spring Boot应用 → static(静态资源)
详细说明:
- 静态资源:包括HTML、CSS、JavaScript、图片等文件,存放在
src/main/resources/static/目录 - 访问方式:用户可以直接通过URL访问这些资源,
http://localhost:8080/PAGE1.html - 处理机制:Spring Boot应用接收到请求后,会直接从static目录中查找对应的资源并返回给用户
2. 模板页面访问流程
Actor(用户) → Spring Boot应用 → Controller(控制器) → 模板引擎 → 渲染后的页面 → Actor(用户)
详细说明:
- 模板页面:如Thymeleaf模板,存放在
src/main/resources/templates/目录 - 控制器:处理用户请求,执行业务逻辑,并返回视图名称
- 访问方式:用户需要通过控制器方法访问模板页面,
http://localhost:8080/page/page2 - 处理机制:
- 用户发送请求到Spring Boot应用
- 应用根据URL路径匹配到对应的控制器方法
- 控制器方法执行并返回视图名称
- 模板引擎根据视图名称查找对应的模板文件
- 模板引擎渲染模板,替换动态内容
- 渲染后的HTML页面返回给用户
3. 前后端分离架构
前端应用(JS/HTML) ←→ API接口文档 ←→ 后端控制器(Controller)
详细说明:
- 前端应用:负责用户界面和交互逻辑,独立开发和部署
- 后端控制器:负责业务逻辑和数据处理,提供API接口
- API接口文档:定义前后端通信的规范和数据格式
- 通信方式:前端通过HTTP请求调用后端API,后端返回JSON格式的数据
核心组件介绍
Spring Boot项目由多个核心组件组成,每个组件都有其特定的职责:
1. 控制器(Controller)
定义:控制器是Spring Boot中处理HTTP请求的核心组件,使用@Controller注解标记。
主要职责:
- 接收用户发送的HTTP请求
- 解析请求参数
- 执行业务逻辑
- 返回响应(视图名称或数据)
核心注解:
@Controller:标记类为控制器@RequestMapping:指定请求路径和HTTP方法@RequestParam:绑定请求参数@RequestBody:将请求体转换为Java对象
2. 实体类(Entity)
定义:实体类用于表示应用中的数据模型,通常对应数据库中的表结构。
主要特点:
- 使用
@Data注解(来自Lombok库)自动生成getter、setter、toString等方法
3. 视图(View)
定义:视图是用户看到的界面,负责展示数据给用户。
类型:
- 静态视图:存放在
static目录,如普通HTML文件 - 模板视图:存放在
templates目录,如Thymeleaf模板,可以包含动态内容
渲染机制:
- 模板引擎(如Thymeleaf)根据控制器传递的数据,渲染模板文件
- 将动态内容替换为实际值,生成最终的HTML页面
4. 内嵌服务器
定义:Spring Boot内置了内嵌服务器(如Tomcat、Jetty等),无需单独部署Web服务器。
主要功能:
- 监听HTTP请求
- 管理Servlet生命周期
- 处理请求分发
- 提供Web服务
请求处理流程
1. GET请求处理流程
以访问http://localhost:8080/page/page2为例:
- 用户发起请求:在浏览器中输入URL并按下回车
- Spring Boot接收请求:应用接收到HTTP GET请求
- 请求映射:Spring Boot根据URL路径
/page/page2匹配到PageController的page2方法 - 方法执行:
- 执行方法体内的代码
- 向
Map<String, Object>中添加数据 - 打印日志信息
- 返回视图名称:方法返回字符串"page2"
- 视图解析:Spring Boot根据视图名称查找
templates/page2.html文件 - 模板渲染:Thymeleaf模板引擎渲染模板,替换动态内容
- 响应返回:渲染后的HTML页面返回给用户浏览器
2. POST请求处理流程
以提交表单到http://localhost:8080/page/page2为例:
- 用户提交表单:用户在表单中输入数据并点击提交按钮
- Spring Boot接收请求:应用接收到HTTP POST请求,包含表单数据
- 请求映射:Spring Boot根据URL路径和HTTP方法匹配到
PageController的page2Post方法 - 参数绑定:使用
@RequestParam注解将表单参数绑定到方法参数 - 方法执行:
- 执行方法体内的代码
- 处理接收到的表单数据
- 向
Map<String, Object>中添加数据
- 返回视图名称:方法返回字符串"page2"
- 视图解析:Spring Boot根据视图名称查找
templates/page2.html文件 - 模板渲染:Thymeleaf模板引擎渲染模板,替换动态内容
- 响应返回:渲染后的HTML页面返回给用户浏览器
数据传输格式
以下是两种常用的数据传输格式:
1. URL参数格式
格式示例:
http://localhost:8080/page/page2?username=xixixixixi & password=1234
特点:
- 直接附加在URL后面,以
?开头,多个参数之间用&分隔 - 适用于GET请求,参数较少且简单的场景
Spring Boot接收方式:
- 使用
@RequestParam注解绑定请求参数 - 例如:
@RequestParam String username
2. JSON格式
格式示例:
{
"username": "heiheihei",
"password": "2345"
}
特点:
- 结构化数据格式,支持复杂对象和嵌套结构
- 适用于POST请求,参数较多或复杂的场景
Spring Boot接收方式:
- 使用
@RequestBody注解将请求体转换为Java对象 - 例如:
@RequestBody User user

浙公网安备 33010602011771号