# bsoa **Repository Path**: bs_10/bsoa ## Basic Information - **Project Name**: bsoa - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-25 - **Last Updated**: 2025-09-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BSOA 工程 这是一个基于Spring Boot的工程,展示了如何使用Spring Boot、MyBatis-Plus、Spring Security、Redis、Quartz等技术构建一个简单的订单管理系统。 ## 工程结构 ``` bxmapp ├── gradle/ # Gradle包装器目录 ├── src/ # 源代码目录 │ ├── main/ # 主要源代码 │ │ ├── java/ # Java源代码 │ │ │ └── com/benshou/bxmapp/ │ │ │ ├── common/ # 通用组件 │ │ │ │ ├── config/ # 配置类 │ │ │ │ ├── db/ # 数据库相关 │ │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ ├── exception/ # 异常处理 │ │ │ │ ├── log/ # 日志处理 │ │ │ │ ├── quartz/ # 定时任务 │ │ │ │ ├── trace/ # 链路追踪 │ │ │ │ └── util/ # 工具类 │ │ │ ├── controller/ # 控制器 │ │ │ │ ├── req/ # 请求对象 │ │ │ │ └── resp/ # 响应对象 │ │ │ ├── dao/ # 数据访问对象 │ │ │ ├── dto/ # 数据传输对象 │ │ │ ├── job/ # 定时任务 │ │ │ ├── mapper/ # MyBatis映射器 │ │ │ ├── model/ # 数据模型 │ │ │ ├── sao/ # 服务访问对象 │ │ │ ├── service/ # 业务服务 │ │ │ └── BxApplication.java # 应用入口 │ │ └── resources/ # 资源文件 │ │ ├── application.properties # 应用配置 │ │ ├── logback-spring.xml # 日志配置 │ │ ├── qh.sql # SQL脚本 │ │ ├── demo_schema-h2.sql # H2数据库脚本 │ │ └── demo_schema.sql # 数据库脚本 │ └── test/ # 测试源代码 ├── .gitattributes # Git属性文件 ├── .gitignore # Git忽略文件 ├── build.gradle # Gradle构建脚本 ├── gradlew # Gradle包装器脚本(Unix) ├── gradlew.bat # Gradle包装器脚本(Windows) ├── settings.gradle # Gradle设置 └── README.md # 项目说明文档 ``` ## 环境要求 项目运行需要以下环境: 1. **JDK** - 版本 17 2. **Gradle** - 版本 8.13 3. **MySQL** - 版本 8.0+ 4. **Redis** - 版本 6.0+ ### 构建与运行 项目运行需要以下环境: 1. **JDK** - 版本 17 2. **Gradle** - 版本 8.13 3. **MySQL** - 版本 8.0+ 4. **Redis** - 版本 6.0+ ### 构建与运行 1. 确保已安装Java 17和Gradle。 2. 运行以下命令以构建项目: ```bash # 使用Gradle包装器构建项目 ./gradlew build # 运行应用 ./gradlew bootRun ``` 3. 或者使用IDE(如IntelliJ IDEA)导入项目并运行。 ## 涉及的组件 1. **Spring Boot 3.4.4** - 用于快速构建独立的Spring应用程序。 2. **MyBatis-Plus 3.5.11** - 增强版的MyBatis,简化数据库操作。 3. **Spring Security** - 提供认证和授权功能。 4. **Redis 6.0+** - 用于缓存和消息传递。 5. **Quartz** - 用于任务调度。 6. **OpenFeign** - 用于声明式REST客户端。 7. **H2 Database** - 内存数据库,用于测试。 8. **MySQL 8.0+** - 关系型数据库。 9. **Gradle 8.13+** - 构建工具。 10. **JDK 17** - Java开发工具包。 ## 示例代码 ### Model 示例 ```java @EqualsAndHashCode(callSuper = true) @Data @TableName("test") public class Test extends BaseModel implements HasId { /** * 自增主键 */ @TableId(type = IdType.AUTO) private Long id; } ``` ### Mapper 示例 ```java @Mapper public interface TestMapper extends BaseMapper { } ``` ### Dao 示例 ```java @Component @RequiredArgsConstructor public class TestDao extends AbstractBaseModelDaoImpl implements BatchOperationService { private final SqlSessionFactory sqlSessionFactory; @Override protected Test getEmptyModel() { return new Test(); } @Override public SqlSessionFactory getSqlSessionFactory() { return this.sqlSessionFactory; } } ``` ### Service 示例 ```java @Service @RequiredArgsConstructor public class TestService { private final TestDao testDao; public ResponseVo echo(@NonNull TestEchoReq req) { return ResponseVo.success(new TestEchoRsp()); } } ``` ### Controller 示例 ```java @RestController @RequestMapping("/test") @RequiredArgsConstructor public class TestController { private final TestService testService; @PostMapping("/echo") public ResponseVo echo(@RequestBody TestEchoReq req) { return testService.echo(req); } } ``` ### 请求/响应对象示例 ```java // 请求对象 package com.benshou.bxmapp.controller.req; import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; @Data public class OrderReq { // 金额 @NotNull(message = "金额不能为空") @DecimalMin(value = "0.01", message = "金额必须大于0") private BigDecimal amount; } // 响应对象 package com.benshou.bxmapp.controller.resp; import lombok.Data; import java.math.BigDecimal; @Data public class OrderResp { // 订单号 private String orderNo; // 金额 private BigDecimal amount; } ```