JAVA--Spring Boot项目创建

Spring Boot项目创建

在开始Spring Boot开发之前,我们首先需要创建一个Spring Boot项目。以下是两个常用的项目初始化网站:

  1. 官方网站https://start.spring.io
  2. 阿里云https://start.aliyun.com

这些网站提供了可视化的界面,你可以:

  • 选择项目的基本信息(如Group、Artifact、版本等)
  • 选择所需的依赖(如Web、Thymeleaf、JPA等)
  • 配置项目的构建工具(Maven或Gradle)
  • 生成完整的项目结构

项目架构解析

在Spring Boot项目中,静态资源、模板页面和前端分离,分别存放在src/main/resources/static/src/main/resources/templates/和前端应用中。
image

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
  • 处理机制
    1. 用户发送请求到Spring Boot应用
    2. 应用根据URL路径匹配到对应的控制器方法
    3. 控制器方法执行并返回视图名称
    4. 模板引擎根据视图名称查找对应的模板文件
    5. 模板引擎渲染模板,替换动态内容
    6. 渲染后的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为例

  1. 用户发起请求:在浏览器中输入URL并按下回车
  2. Spring Boot接收请求:应用接收到HTTP GET请求
  3. 请求映射:Spring Boot根据URL路径/page/page2匹配到PageControllerpage2方法
  4. 方法执行
    • 执行方法体内的代码
    • Map<String, Object>中添加数据
    • 打印日志信息
  5. 返回视图名称:方法返回字符串"page2"
  6. 视图解析:Spring Boot根据视图名称查找templates/page2.html文件
  7. 模板渲染:Thymeleaf模板引擎渲染模板,替换动态内容
  8. 响应返回:渲染后的HTML页面返回给用户浏览器

2. POST请求处理流程

以提交表单到http://localhost:8080/page/page2为例

  1. 用户提交表单:用户在表单中输入数据并点击提交按钮
  2. Spring Boot接收请求:应用接收到HTTP POST请求,包含表单数据
  3. 请求映射:Spring Boot根据URL路径和HTTP方法匹配到PageControllerpage2Post方法
  4. 参数绑定:使用@RequestParam注解将表单参数绑定到方法参数
  5. 方法执行
    • 执行方法体内的代码
    • 处理接收到的表单数据
    • Map<String, Object>中添加数据
  6. 返回视图名称:方法返回字符串"page2"
  7. 视图解析:Spring Boot根据视图名称查找templates/page2.html文件
  8. 模板渲染:Thymeleaf模板引擎渲染模板,替换动态内容
  9. 响应返回:渲染后的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
posted @ 2026-01-29 18:58  犯困蛋挞别犯困  阅读(3)  评论(0)    收藏  举报