230 lines
6.4 KiB
Markdown
230 lines
6.4 KiB
Markdown
# 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<YourEntity> {
|
|
// 自定义查询方法
|
|
}
|
|
```
|
|
|
|
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<YourEntity> 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! 🎉** |