# springTemplte **Repository Path**: ding_ice/spring-templte ## Basic Information - **Project Name**: springTemplte - **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-12-21 - **Last Updated**: 2025-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot 基础模板项目 这是一个专门为Spring Boot初学者设计的基础模板项目,包含了Spring Boot开发中最常用的功能和配置。 ## 📋 项目特性 - ✅ **Web开发**:RESTful API开发 - ✅ **数据访问**:JPA + H2内存数据库 - ✅ **分层架构**:Controller → Service → Repository - ✅ **常用注解**:全面的注解使用示例 - ✅ **日志记录**:完整的日志配置 - ✅ **热部署**:开发时自动重启 - ✅ **代码简化**:Lombok集成 ## 🏗️ 项目结构 ``` spring-boot-template/ ├── src/main/java/com/example/demo/ │ ├── SpringBootTemplateApplication.java # 主启动类 │ ├── controller/ │ │ └── UserController.java # 用户控制器(API接口) │ ├── service/ │ │ ├── UserService.java # 用户服务接口 │ │ └── impl/ │ │ └── UserServiceImpl.java # 用户服务实现 │ ├── repository/ │ │ └── UserRepository.java # 用户数据访问接口 │ └── entity/ │ └── User.java # 用户实体类 ├── src/main/resources/ │ └── application.properties # 配置文件 ├── pom.xml # Maven配置文件 └── README.md # 项目说明文档 ``` ## 🚀 快速开始 ### 1. 环境要求 - Java 17 或更高版本 - Maven 3.6 或更高版本 - IDE(推荐:IntelliJ IDEA 或 Eclipse) ### 2. 运行项目 #### 方法一:使用IDE 1. 用IDE打开项目 2. 找到 `SpringBootTemplateApplication.java` 3. 右键点击 → Run #### 方法二:使用Maven命令 ```bash # 进入项目目录 cd spring-boot-template # 运行项目 mvn spring-boot:run ``` #### 方法三:打包后运行 ```bash # 打包项目 mvn clean package # 运行jar文件 java -jar target/spring-boot-template-1.0.0.jar ``` ### 3. 验证启动 启动成功后,控制台会看到: ``` ======================================== Spring Boot Template 启动成功! 访问地址: http://localhost:8080 H2控制台: http://localhost:8080/h2-console ======================================== ``` ## 🌐 API接口说明 ### 用户管理接口 | 方法 | 路径 | 功能 | 请求体示例 | |------|------|------|-----------| | GET | `/api/users` | 查询所有用户 | 无 | | GET | `/api/users/{id}` | 根据ID查询用户 | 无 | | GET | `/api/users/username/{username}` | 根据用户名查询用户 | 无 | | GET | `/api/users/search?username={keyword}` | 模糊查询用户 | 无 | | GET | `/api/users/age-range?minAge=18&maxAge=30` | 年龄范围查询 | 无 | | GET | `/api/users/count` | 统计用户数量 | 无 | | POST | `/api/users` | 创建用户 | 见下方示例 | | PUT | `/api/users/{id}` | 更新用户 | 见下方示例 | | DELETE | `/api/users/{id}` | 删除用户 | 无 | | POST | `/api/users/login` | 用户登录 | 见下方示例 | ### 请求示例 #### 创建用户 ```http POST /api/users Content-Type: application/json { "username": "zhangsan", "password": "123456", "email": "zhangsan@example.com", "nickname": "张三", "age": 25 } ``` #### 更新用户 ```http PUT /api/users/1 Content-Type: application/json { "nickname": "张三(新)", "email": "newemail@example.com", "age": 26 } ``` #### 用户登录 ```http POST /api/users/login Content-Type: application/json { "username": "zhangsan", "password": "123456" } ``` ## 🗄️ 数据库配置 ### H2内存数据库(默认) 项目使用H2内存数据库,无需安装任何软件。 **访问H2控制台:** - 地址:http://localhost:8080/h2-console - JDBC URL: `jdbc:h2:mem:testdb` - 用户名: `sa` - 密码: (留空) ### 切换到MySQL 如果要使用MySQL,请按以下步骤操作: 1. **修改pom.xml** - 取消MySQL驱动的注释 - 注释掉H2数据库的依赖 2. **修改application.properties** - 注释掉H2的配置 - 取消MySQL配置的注释 - 修改数据库连接信息 ```properties # MySQL配置示例 spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` ## 📝 核心注解说明 ### Spring基础注解 | 注解 | 用途 | 位置 | |------|------|------| | `@SpringBootApplication` | 主启动类注解 | 主启动类 | | `@RestController` | 声明REST控制器 | 控制器类 | | `@Service` | 声明服务层组件 | 服务类 | | `@Repository` | 声明数据访问层组件 | Repository接口 | | `@Entity` | 声明JPA实体类 | 实体类 | ### HTTP请求注解 | 注解 | HTTP方法 | 用途 | |------|----------|------| | `@GetMapping` | GET | 查询数据 | | `@PostMapping` | POST | 创建数据 | | `@PutMapping` | PUT | 更新数据 | | `@DeleteMapping` | DELETE | 删除数据 | ### 参数绑定注解 | 注解 | 用途 | 示例 | |------|------|------| | `@PathVariable` | 路径参数 | `/users/{id}` | | `@RequestParam` | 查询参数 | `?username=zhang` | | `@RequestBody` | 请求体 | JSON对象 | ### Lombok注解 | 注解 | 功能 | |------|------| | `@Data` | 自动生成getter/setter/toString等 | | `@NoArgsConstructor` | 生成无参构造方法 | | `@AllArgsConstructor` | 生成全参构造方法 | | `@RequiredArgsConstructor` | 生成包含final字段的构造方法 | | `@Slf4j` | 自动生成日志记录器 | ## 🔧 开发技巧 ### 1. 热部署 项目已配置热部署,修改代码后自动重启: ```xml org.springframework.boot spring-boot-devtools runtime true ``` ### 2. 日志使用 使用Lombok的@Slf4j注解,可以直接使用log对象: ```java @Slf4j public class UserService { public void createUser() { log.info("创建用户"); log.debug("调试信息"); log.error("错误信息"); } } ``` ### 3. 配置管理 在application.properties中添加自定义配置: ```properties app.name=My Application app.version=1.0.0 ``` 在代码中使用@Value注解读取: ```java @Value("${app.name}") private String appName; ``` ## 🎯 学习建议 ### 第1步:理解项目结构 - 了解MVC三层架构 - 理解各层的职责 ### 第2步:运行和测试 - 启动项目 - 使用Postman或curl测试API - 访问H2控制台查看数据 ### 第3步:阅读代码 - 从主启动类开始 - 理解注解的作用 - 跟踪请求处理流程 ### 第4步:动手实践 - 添加新的字段 - 创建新的API接口 - 实现新的业务逻辑 - 添加数据校验 ### 第5步:深入学习 - 学习Spring Security(安全) - 学习Spring Cache(缓存) - 学习Spring Validation(验证) - 学习Swagger(API文档) ## 🛠️ 常见问题 ### Q1: 端口被占用怎么办? **A:** 修改application.properties中的端口号: ```properties server.port=8081 ``` ### Q2: 如何查看SQL日志? **A:** 已在application.properties中配置: ```properties spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true ``` ### Q3: 如何修改日志级别? **A:** 在application.properties中配置: ```properties logging.level.com.example.demo=DEBUG logging.level.org.springframework.web=INFO ``` ## 📚 进阶学习资源 - [Spring Boot官方文档](https://spring.io/projects/spring-boot) - [Spring Data JPA参考文档](https://spring.io/projects/spring-data-jpa) - [Spring Web MVC教程](https://spring.io/guides/gs/rest-service/) - [Hibernate文档](https://hibernate.org/orm/documentation/) ## 🎉 总结 这个模板项目为你提供了: - ✅ 完整的项目结构 - ✅ 常用的配置示例 - ✅ 详细的代码注释 - ✅ 实际可用的API接口 - ✅ 最佳实践示例 **建议:** 先运行起来,然后逐步阅读和修改代码,在实践中学习Spring Boot! 祝你学习愉快!🚀