# myweb **Repository Path**: tsrsss/myweb ## Basic Information - **Project Name**: myweb - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-12-16 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 校园二手物品交易平台 一个基于Spring Boot和原生JavaScript的校园二手物品交易平台,支持用户注册、登录、发布物品、浏览物品、搜索筛选等功能。 ## 功能特性 - ✅ 用户注册与登录 - ✅ JWT身份认证 - ✅ 物品发布与管理 - ✅ 物品浏览与搜索 - ✅ 实时通知(WebSocket) - ✅ 响应式前端界面 - ✅ 数据持久化(MySQL) ## 技术栈 ### 后端 - Spring Boot 3.5.7 - Spring Security(JWT认证) - Spring Data JPA - Spring WebSocket - MySQL数据库 - JJWT(JWT令牌) ### 前端 - 原生HTML/CSS/JavaScript - 响应式设计 - WebSocket实时通信 ## 项目结构 ``` d:\www\demo\ ├── src/main/java/com/example/demo/ │ ├── config/ # 配置类 │ │ ├── SecurityConfig.java │ │ └── WebSocketConfig.java │ ├── controller/ # 控制器 │ │ ├── AuthController.java │ │ ├── ItemController.java │ │ ├── UserController.java │ │ └── WebSocketController.java │ ├── entity/ # 实体类 │ │ ├── Item.java │ │ └── User.java │ ├── repository/ # 数据访问层 │ │ ├── ItemRepository.java │ │ └── UserRepository.java │ ├── service/ # 业务逻辑层 │ │ ├── ItemService.java │ │ └── UserService.java │ ├── dto/ # 数据传输对象 │ │ ├── AuthRequest.java │ │ ├── AuthResponse.java │ │ ├── ItemRequest.java │ │ ├── ItemResponse.java │ │ └── UserResponse.java │ └── util/ # 工具类 │ └── JwtUtil.java ├── src/main/resources/ │ ├── static/ # 前端静态资源 │ │ ├── index.html │ │ └── js/app.js │ └── application.properties └── pom.xml ``` ## 环境要求 - Java 21+ - MySQL 8.0+ - Maven 3.6+ ## 快速开始 ### 1. 数据库配置 1. 创建MySQL数据库: ```sql CREATE DATABASE campus_trade; ``` 2. 修改数据库连接配置(`src/main/resources/application.properties`): ```properties spring.datasource.url=jdbc:mysql://localhost:3306/campus_trade spring.datasource.username=your_username spring.datasource.password=your_password ``` ### 2. 构建项目 ```bash cd d:\www\demo mvn clean package ``` ### 3. 运行项目 ```bash mvn spring-boot:run ``` 或者直接运行JAR文件: ```bash java -jar target/demo-0.0.1-SNAPSHOT.jar ``` ### 4. 访问应用 打开浏览器访问:http://localhost:8080 ## API接口文档 ### 认证相关 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 - `GET /api/auth/validate` - 验证令牌 ### 物品相关 - `GET /api/items` - 获取所有物品 - `GET /api/items/my` - 获取我的物品(需认证) - `GET /api/items/{id}` - 获取物品详情 - `POST /api/items` - 创建物品(需认证) - `PUT /api/items/{id}` - 更新物品(需认证) - `DELETE /api/items/{id}` - 删除物品(需认证) - `GET /api/items/search?keyword={keyword}` - 搜索物品 - `GET /api/items/filter?category={}&minPrice={}&maxPrice={}&condition={}&supportsDelivery={}` - 筛选物品 ### 用户相关 - `GET /api/users/profile` - 获取用户资料(需认证) - `PUT /api/users/profile` - 更新用户资料(需认证) ## 前端功能 ### 页面导航 - **首页**:展示所有物品 - **浏览物品**:带筛选功能的物品浏览页面 - **发布帖子**:发布新的二手物品 - **我的物品**:管理自己发布的物品 - **登录/注册**:用户认证 ### 主要特性 - 响应式设计,支持移动端 - 实时物品更新通知 - 智能搜索和筛选 - 用户友好的界面交互 ## 开发说明 ### 数据库表结构 #### users表 - id (主键) - username (用户名) - password (加密密码) - avatar (头像) - created_at (创建时间) - updated_at (更新时间) #### items表 - id (主键) - title (标题) - description (描述) - price (价格) - category (分类) - condition (新旧程度) - supports_delivery (是否支持配送) - user_id (用户ID,外键) - created_at (创建时间) - updated_at (更新时间) ### 安全配置 - 使用BCryptPasswordEncoder加密密码 - JWT令牌认证 - CORS跨域配置 - CSRF保护禁用(API项目) ## 部署说明 ### 生产环境配置 1. 修改`application.properties`中的数据库连接 2. 设置JWT密钥(jwt.secret) 3. 配置静态资源路径 4. 设置合适的文件上传大小限制 ### Docker部署(可选) ```dockerfile FROM openjdk:21-jdk-slim COPY target/demo-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/app.jar"] ``` ## 常见问题 ### Q: 数据库连接失败 A: 检查MySQL服务是否启动,数据库连接配置是否正确 ### Q: 前端页面无法访问 A: 确保Spring Boot应用正常启动,检查端口8080是否被占用 ### Q: 文件上传失败 A: 检查文件大小是否超过配置限制,存储路径是否有写权限 ## 许可证 MIT License ## 贡献 欢迎提交Issue和Pull Request来改进这个项目。 ## 联系方式 如有问题请联系项目维护者。