Springboot 业务流程

层次逻辑

  1. Controller(控制器层):
    • 位于 src/main/java/com/example/springbootdemo/controller/ 目录。
    • 处理来自客户端的 HTTP 请求,调用 Service 层执行业务逻辑,返回结果给客户端。
    • 通常使用 @RestController 注解。
  2. Service(业务逻辑层):
    • 位于 src/main/java/com/example/springbootdemo/service/ 目录,impl/ 目录存放具体的实现类。
    • 负责处理业务逻辑,与 Repository 层交互。
    • 通常使用 @Service 注解。
  3. Mapper/Repository(数据访问层):
    • 位于 src/main/java/com/example/springbootdemo/mapper/ 目录。
    • 用于和数据库进行交互,执行数据库的增删改查操作。
    • 通常使用 @Mapper(MyBatis)或者 @Repository(JPA)注解。
  4. Pojo(实体类层):
    • 位于 src/main/java/com/example/springbootdemo/pojo/ 目录。
    • 存放实体类(对应数据库表的结构),比如 User 对象。
  5. Config(配置层):
    • 位于 src/main/java/com/example/springbootdemo/config/ 目录。
    • 存放项目的配置类,比如数据库配置、安全配置、全局跨域配置等。
  6. Utils(工具类层):
    • 位于 src/main/java/com/example/springbootdemo/utils/ 目录。
    • 存放常用的工具类,比如日期转换、字符串处理等。
  7. Resources(资源层):
    • 位于 src/main/resources/ 目录。
    • 存放项目的配置文件(如 application.properties)、静态资源(如 HTML、CSS、JS)、以及 Mapper 的 XML 配置文件(如果使用 MyBatis)。
  8. Test(测试层):
    • 位于 src/test/ 目录。
    • 存放测试类,用于编写单元测试和集成测试。

如果需要扩展层级结构,通常可以增加:

  • DTO(Data Transfer Object):用于在 Controller 和 Service 之间传输数据。
  • Exception Handling(异常处理层):集中处理全局异常。
CREATE TABLE user_profiles (
    id INT AUTO_INCREMENT PRIMARY KEY,                    -- 用户唯一标识
    name VARCHAR(255) NOT NULL,                           -- 姓名
    identity VARCHAR(255) NOT NULL,                       -- 身份
    contact VARCHAR(255) NOT NULL,                        -- 紧急联系人
    contact_phone VARCHAR(20) NOT NULL,                   -- 紧急联系人电话
    contact_relationship VARCHAR(50),                     -- 紧急联系人关系
    age INT NOT NULL,                                     -- 年龄
    gender ENUM('male', 'female') NOT NULL,               -- 性别
    health TEXT,                                          -- 健康状况
    address VARCHAR(255),                                 -- 家庭住址
    face_image VARCHAR(255),                              -- 人脸图片文件路径
    profile_photo VARCHAR(255),                           -- 个人照片文件路径
    medical_history TEXT,                                 -- 医疗历史
    email VARCHAR(255),                                   -- 电子邮件
    status ENUM('active', 'inactive', 'terminated') DEFAULT 'active', -- 用户状态
    notes TEXT,                                           -- 备注
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,       -- 记录创建时间
    last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -- 最后更新时间
);

1. 项目设置

  • 创建项目:使用 Spring Initializr(start.spring.io)或其他工具创建一个新的 Spring Boot 项目。
  • 配置依赖:在 pom.xml(Maven)或 build.gradle(Gradle)中添加所需的依赖,例如 Web、JPA、MySQL 等。

2. 创建实体类(Model)

  • 定义实体类:在 src/main/java/com/example/yourproject/pojo 目录中创建实体类,使用 @Entity 注解标记它。
  • 映射到数据库:使用 @Table 注解指定数据库表名,使用 @Column 注解映射字段到表的列。

3. 创建数据访问层(Repository)

  • 创建接口:在 src/main/java/com/example/yourproject/repository 目录中创建接口,继承 JpaRepositoryCrudRepository
  • 自定义查询:如果需要,可以在接口中定义自定义查询方法。

4. 创建服务层(Service)

  • 定义业务逻辑:在 src/main/java/com/example/yourproject/service 目录中创建服务类,使用 @Service 注解标记它。
  • 实现业务方法:在服务类中实现业务逻辑,并调用数据访问层的方法。

5. 创建控制层(Controller)

  • 定义 REST API:在 src/main/java/com/example/yourproject/controller 目录中创建控制器类,使用 @RestController 注解标记它。
  • 映射请求:使用 @RequestMapping@GetMapping@PostMapping 等注解映射 HTTP 请求到相应的处理方法。

6. 配置应用程序(Configuration)

  • 数据库配置:在 src/main/resources/application.propertiesapplication.yml 文件中配置数据库连接信息、JPA 设置等。
  • 其他配置:配置安全、消息队列、缓存等其他组件。

7. 测试

  • 编写测试:在 src/test/java/com/example/yourproject 目录中编写单元测试和集成测试,使用 @SpringBootTest 注解加载 Spring 上下文进行测试。
  • 运行测试:运行测试以确保应用程序的功能正常。

8. 运行和部署

  • 运行应用:通过 IDE 或使用命令行(mvn spring-boot:run./gradlew bootRun)运行应用程序。
  • 打包和部署:使用 Maven 或 Gradle 打包应用程序,生成可执行的 JAR 文件或 WAR 文件,然后部署到服务器或云平台上。

业务流程示例:

假设你有一个简单的用户管理系统,业务流程可能如下:

  1. 用户注册:用户提交注册表单,控制器接收请求并调用服务层的注册方法。服务层处理业务逻辑并保存用户数据到数据库。返回注册成功的响应。
  2. 用户登录:用户提交登录信息,控制器接收请求并调用服务层的登录方法。服务层验证用户身份并生成认证令牌(如 JWT)。返回认证结果和令牌。
  3. 用户查询:用户请求查看个人信息,控制器接收请求并调用服务层的方法获取用户数据。服务层从数据库中检索数据并返回给控制器。控制器将数据发送给用户。
  4. 用户更新:用户提交更新信息,控制器接收请求并调用服务层的更新方法。服务层处理业务逻辑并更新用户数据到数据库。返回更新结果。

查询全部数据

http://localhost:5024/user-profiles/list

image-20240905155142697

vue3接收路由