Y 3e9cd18fae zzy2 1 тиждень тому
..
data 3e9cd18fae zzy2 1 тиждень тому
src 3e9cd18fae zzy2 1 тиждень тому
target 3e9cd18fae zzy2 1 тиждень тому
uploads 3e9cd18fae zzy2 1 тиждень тому
AI学习搭子需求文档.md 3e9cd18fae zzy2 1 тиждень тому
API接口使用说明.md 3e9cd18fae zzy2 1 тиждень тому
README.md 3e9cd18fae zzy2 1 тиждень тому
pom.xml 3e9cd18fae zzy2 1 тиждень тому
数据库表文档.md 3e9cd18fae zzy2 1 тиждень тому

README.md

Base Server - Spring Boot + JPA 接口框架

这是一个基于 Spring Boot 和 JPA 的后端接口框架,为 Android 应用提供用户管理相关的 REST API。

技术栈

  • Spring Boot 3.2.1 - 主框架
  • Spring Data JPA - 数据持久化
  • H2 Database - 内存数据库(开发环境)
  • MySQL - 生产数据库(可选配置)
  • Maven - 项目管理
  • Lombok - 简化代码
  • Jakarta Validation - 参数验证

项目结构

src/main/java/com/example/baseserver/
├── BaseServerApplication.java          # 主启动类
├── config/
│   ├── DataInitializer.java           # 数据初始化
│   └── WebConfig.java                  # Web配置(CORS等)
├── controller/
│   └── UserController.java            # 用户控制器
├── dto/
│   ├── ApiResponse.java               # 统一响应格式
│   ├── UserDTO.java                   # 用户数据传输对象
│   └── UserRequest.java               # 用户请求对象
├── entity/
│   └── User.java                      # 用户实体
├── exception/
│   └── GlobalExceptionHandler.java    # 全局异常处理
├── repository/
│   └── UserRepository.java            # 用户数据访问层
└── service/
    └── UserService.java               # 用户业务逻辑层

快速开始

1. 环境要求

  • Java 17+
  • Maven 3.6+

2. 运行项目

# 进入项目目录
cd d:\base\server

# 编译项目
mvn clean compile

# 运行项目
mvn spring-boot:run

3. 访问应用

API 接口

用户管理接口

方法 路径 描述
POST /api/users/register 用户注册
POST /api/users/login 用户登录
GET /api/users/{id} 获取用户信息
GET /api/users 获取所有用户
PUT /api/users/{id} 更新用户信息
DELETE /api/users/{id} 删除用户
POST /api/users/{id}/change-password 修改密码

请求示例

用户注册

curl -X POST http://localhost:8080/api/users/register \
  -H "Content-Type: application/json" \
  -d '{
    "username": "newuser",
    "password": "123456",
    "email": "newuser@example.com",
    "nickname": "新用户",
    "phone": "13800138888"
  }'

用户登录

curl -X POST http://localhost:8080/api/users/login \
  -H "Content-Type: application/json" \
  -d '{
    "usernameOrEmail": "admin",
    "password": "123456"
  }'

获取用户列表

curl -X GET http://localhost:8080/api/users

数据库配置

开发环境(H2 内存数据库)

默认使用 H2 内存数据库,无需额外配置。数据库控制台访问信息:

  • JDBC URL: jdbc:h2:mem:testdb
  • 用户名: sa
  • 密码: (空)

生产环境(MySQL)

修改 application.yml 文件,取消 MySQL 配置的注释并填入实际数据库信息:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/base_server?useSSL=false&serverTimezone=UTC
    username: your_username
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver

初始数据

应用启动时会自动创建以下测试用户:

用户名 密码 邮箱 昵称
admin 123456 admin@example.com 系统管理员
testuser1 123456 user1@example.com 测试用户1
testuser2 123456 user2@example.com 测试用户2

Android 客户端集成

添加网络权限

在 Android 项目的 AndroidManifest.xml 中添加:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

使用 Retrofit 调用 API

// API 接口定义
public interface UserApi {
    @POST("users/login")
    Call<ApiResponse<UserDTO>> login(@Body LoginRequest request);
    
    @GET("users")
    Call<ApiResponse<List<UserDTO>>> getUsers();
}

// 创建 Retrofit 实例
Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("http://你的电脑IP:8080/api/")
    .addConverterFactory(GsonConverterFactory.create())
    .build();

UserApi userApi = retrofit.create(UserApi.class);

开发说明

密码加密

当前使用简单的字符串前缀加密方式(仅用于演示)。生产环境建议使用 BCrypt:

@Bean
public PasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
}

添加新的实体和接口

  1. entity 包中创建实体类
  2. repository 包中创建对应的 Repository 接口
  3. dto 包中创建 DTO 类
  4. service 包中创建业务逻辑类
  5. controller 包中创建控制器类

日志查看

应用日志会输出到控制台,包含详细的操作信息和错误信息。

部署

打包应用

mvn clean package

运行 JAR 文件

java -jar target/base-server-1.0.0.jar

常见问题

  1. 端口冲突: 修改 application.yml 中的 server.port 配置
  2. 跨域问题: 已在 WebConfig 中配置 CORS,支持所有来源
  3. 数据库连接: 检查数据库配置和网络连接

许可证

MIT License