commit 8cf82c52c18be8451123e2da6fd38a61f56d2c0d Author: zchengrong <124802516+zchengrong@users.noreply.github.com> Date: Mon Oct 20 16:12:52 2025 +0800 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..1c11aa6 --- /dev/null +++ b/README.md @@ -0,0 +1,230 @@ +# Lane Carford - Spring Boot 架构模板 + +## 📋 项目简介 + +这是一个基于 **Spring Boot 3.1.6** 和 **Java 21** 的纯净企业级架构模板,提供了完整的基础设施组件,可以快速开发各种类型的业务应用。 + +## 🛠️ 技术栈 + +- **Java**: 21 (启用预览功能) +- **Spring Boot**: 3.1.6 +- **Spring Security**: 6.x +- **MyBatis-Plus**: 3.5.5 +- **MySQL**: 8.x +- **Swagger**: SpringDoc OpenAPI 2.6.0 +- **Lombok**: 自动生成样板代码 +- **Maven**: 项目构建工具 + +## 🏗️ 核心功能 + +### ✅ 已实现功能 + +1. **🛡️ 全局异常处理** - 统一异常处理和错误响应格式 +2. **📤 统一API响应** - 标准化的API响应格式 +3. **📊 分页查询支持** - 完整的分页查询封装 +4. **🔄 Bean转换工具** - 对象转换和属性复制工具 +5. **📝 日志切面** - 自动记录Controller方法调用日志 +6. **⚡ 性能监控切面** - 监控方法执行性能 +7. **🗄️ MyBatis-Plus集成** - 强大的ORM功能 +8. **📁 文件上传支持** - 文件上传配置和处理 +9. **🔒 Spring Security集成** - 基础安全配置 +10. **📚 Swagger API文档** - 自动生成API文档 + +### 🏛️ 架构组件 + +``` +src/main/java/com/aida/lanecarford/ +├── aspect/ # 切面编程 +│ ├── LoggingAspect.java # 日志切面 +│ └── PerformanceAspect.java # 性能监控切面 +├── common/ # 通用组件 +│ ├── ApiResponse.java # 统一API响应 +│ └── PageResult.java # 分页结果封装 +├── config/ # 配置类 +│ ├── SecurityConfig.java # 安全配置 +│ ├── SwaggerConfig.java # API文档配置 +│ └── WebConfig.java # Web配置 +├── controller/ # 控制器层 (空目录,待扩展) +├── dto/ # 数据传输对象 (空目录,待扩展) +├── entity/ # 实体类 +│ └── BaseEntity.java # 基础实体类 +├── exception/ # 异常处理 +│ ├── BusinessException.java # 业务异常 +│ └── GlobalExceptionHandler.java # 全局异常处理器 +├── mapper/ # 数据访问层 +│ └── BaseMapper.java # 基础Mapper接口 +├── security/ # 安全相关 (空目录,待扩展) +├── service/ # 业务逻辑层 (空目录,待扩展) +└── util/ # 工具类 + └── BeanUtil.java # Bean转换工具 +``` + +## 🚀 快速开始 + +### 1. 环境要求 + +- Java 21+ +- Maven 3.6+ +- MySQL 8.0+ + +### 2. 数据库配置 + +```sql +-- 创建数据库 +CREATE DATABASE lanecarford CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +``` + +### 3. 修改配置 + +编辑 `src/main/resources/application.properties`: + +```properties +# 数据库配置 +spring.datasource.url=jdbc:mysql://localhost:3306/lanecarford?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai +spring.datasource.username=your_username +spring.datasource.password=your_password +``` + +### 4. 运行项目 + +```bash +# 编译项目 +mvn clean compile + +# 运行项目 +mvn spring-boot:run + +# 或者打包后运行 +mvn clean package +java -jar target/lanecarford-0.0.1-SNAPSHOT.jar +``` + +### 5. 访问应用 + +- **应用首页**: http://localhost:8080 +- **API文档**: http://localhost:8080/swagger-ui.html +- **API JSON**: http://localhost:8080/api-docs +- **健康检查**: http://localhost:8080/actuator/health + +## 📖 使用指南 + +### 创建业务模块 + +1. **创建实体类** +```java +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("your_table") +public class YourEntity extends BaseEntity { + private String name; + private String description; +} +``` + +2. **创建Mapper接口** +```java +@Repository +public interface YourEntityMapper extends BaseMapper { + // 自定义查询方法 +} +``` + +3. **创建Service类** +```java +@Service +public class YourEntityService { + @Autowired + private YourEntityMapper mapper; + + // 业务逻辑方法 +} +``` + +4. **创建Controller类** +```java +@RestController +@RequestMapping("/api/your-entity") +@Tag(name = "业务模块", description = "业务相关API") +public class YourEntityController { + @Autowired + private YourEntityService service; + + @Operation(summary = "创建记录") + @PostMapping + public ApiResponse create(@Valid @RequestBody CreateRequest request) { + YourEntity entity = service.create(request); + return ApiResponse.success("创建成功", entity); + } +} +``` + +### 详细功能说明 + +请查看 [ARCHITECTURE.md](./ARCHITECTURE.md) 文件,其中包含了所有功能模块的详细说明和使用示例。 + +## 🔧 配置说明 + +### 主要配置项 + +```properties +# 应用基础配置 +spring.application.name=lanecarford-ai-styling-assistant +server.port=8080 + +# 数据库配置 +spring.datasource.url=jdbc:mysql://localhost:3306/lanecarford +spring.datasource.username=root +spring.datasource.password=123456 + +# MyBatis-Plus配置 +mybatis-plus.configuration.map-underscore-to-camel-case=true +mybatis-plus.global-config.db-config.logic-delete-field=deleted + +# 文件上传配置 +spring.servlet.multipart.max-file-size=10MB +spring.servlet.multipart.max-request-size=50MB + +# Swagger配置 +springdoc.api-docs.path=/api-docs +springdoc.swagger-ui.path=/swagger-ui.html +``` + +## 📁 项目结构 + +``` +lanecarford111/ +├── src/main/ +│ ├── java/com/aida/lanecarford/ # Java源码 +│ └── resources/ # 资源文件 +│ ├── application.yml # 主配置文件 +│ └── sql/ # SQL脚本 +│ ├── schema.sql # 数据库表结构 +│ └── data.sql # 初始化数据 +├── uploads/ # 文件上传目录 +├── pom.xml # Maven配置 +├── README.md # 项目说明 +└── ARCHITECTURE.md # 架构功能详细说明 +``` + +## 🤝 贡献指南 + +1. Fork 本项目 +2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) +3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) +4. 推送到分支 (`git push origin feature/AmazingFeature`) +5. 创建 Pull Request + +## 📄 许可证 + +本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 + +## 📞 联系方式 + +如有问题或建议,请通过以下方式联系: + +- 项目Issues: [GitHub Issues](https://github.com/your-repo/issues) +- 邮箱: your-email@example.com + +--- + +**Happy Coding! 🎉** \ No newline at end of file