Y b89dfa28c0 zzy.8.8 17 stundas atpakaļ
..
sql b89dfa28c0 zzy.8.8 17 stundas atpakaļ
src b89dfa28c0 zzy.8.8 17 stundas atpakaļ
target b89dfa28c0 zzy.8.8 17 stundas atpakaļ
uploads b89dfa28c0 zzy.8.8 17 stundas atpakaļ
AI学习搭子需求文档.md b89dfa28c0 zzy.8.8 17 stundas atpakaļ
API接口使用说明.md b89dfa28c0 zzy.8.8 17 stundas atpakaļ
README.md b89dfa28c0 zzy.8.8 17 stundas atpakaļ
pom.xml b89dfa28c0 zzy.8.8 17 stundas atpakaļ
数据库表文档.md b89dfa28c0 zzy.8.8 17 stundas atpakaļ

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