Skip to content

llfzzz/Micro

Repository files navigation

Micro 社交平台

Java Servlet MySQL License

📖 项目简介

Micro 是一个基于 Java Web 技术栈开发的轻量级社交平台。项目采用经典的 MVC 分层架构,实现了完整的社交媒体核心功能,包括用户认证、动态发布、社交互动、关注关系管理及后台管理等功能模块。

✨ 主要功能

  • 用户系统:注册、登录、个人资料管理、头像/背景图上传
  • 动态功能:发布动态(支持图片/视频)、删除动态、动态流浏览
  • 社交互动:点赞、评论、@提及、#话题标签
  • 关注系统:关注/取消关注、粉丝列表、关注列表
  • 搜索功能:用户搜索、动态搜索、话题搜索
  • 管理后台:用户管理、内容审核、数据统计

🏗️ 技术架构

┌─────────────────────────────────────────────────────────┐
│                    表现层 (Servlet + JSP)                │
├─────────────────────────────────────────────────────────┤
│                    业务逻辑层 (Service)                   │
├─────────────────────────────────────────────────────────┤
│                    数据访问层 (DAO)                       │
├─────────────────────────────────────────────────────────┤
│                  数据存储 (MySQL + 文件系统)               │
└─────────────────────────────────────────────────────────┘

🛠️ 环境要求

在开始之前,请确保您的开发环境满足以下要求:

软件 版本要求 说明
JDK 17 或更高 推荐使用 OpenJDK 17 或 Oracle JDK 17
MySQL 8.0 或更高 需要提前安装并启动 MySQL 服务
IntelliJ IDEA 2021.3 或更高 推荐使用 Ultimate 版(支持 Web 开发)
Apache Tomcat 9.0 或更高 作为 Servlet 容器运行项目
Maven 3.6 或更高 IDEA 通常已内置,也可单独安装
Git 任意版本 用于克隆项目代码

🚀 快速开始

第一步:克隆项目

打开终端,执行以下命令将项目克隆到本地:

# 使用 HTTPS
git clone https://github.com/llfzzz/Micro.git

# 或使用 SSH
git clone git@github.com:llfzzz/Micro.git

# 进入项目目录
cd Micro

第二步:在 IntelliJ IDEA 中打开项目

  1. 启动 IntelliJ IDEA
  2. 选择 FileOpen
  3. 选择克隆下来的 Micro 文件夹
  4. 点击 OK 打开项目
  5. 等待 IDEA 自动导入 Maven 依赖(右下角会显示进度)

💡 提示:如果依赖下载缓慢,可以在 FileSettingsBuild, Execution, DeploymentBuild ToolsMaven 中配置国内镜像源。

第三步:配置 JDK

  1. 打开 FileProject Structure(快捷键 Cmd + ;Ctrl + Alt + Shift + S
  2. 在左侧选择 Project
  3. 设置 SDK 为 JDK 17(如果没有,点击 Add SDKDownload JDK 下载)
  4. 设置 Language level17 - Sealed types, always-strict floating-point semantics
  5. 点击 Apply 保存

第四步:配置数据库

4.1 创建数据库

打开 MySQL 客户端(命令行或 DataGrip/Navicat 等工具),执行以下 SQL:

-- 创建数据库
CREATE DATABASE IF NOT EXISTS micro 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;

-- 使用数据库
USE micro;

4.2 初始化数据表

执行项目中的数据库脚本文件:

-- 方式一:在 MySQL 命令行中执行
source /path/to/Micro/src/main/resources/db/schema.sql

-- 方式二:复制 schema.sql 的内容到客户端工具中执行

脚本文件位置:src/main/resources/db/schema.sql

4.3 修改数据库连接配置

打开配置文件 src/main/resources/application.properties,修改数据库连接信息:

# 数据库配置
db.url=jdbc:mysql://localhost:3306/micro?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true
db.user=root                    # 修改为你的 MySQL 用户名
db.password=your_password       # 修改为你的 MySQL 密码
db.pool.max=10                  # 连接池最大连接数

# 文件存储路径(根据实际情况修改)
file.storage.path=/path/to/Micro/src/main/webapp/static/uploads

# 上传限制
upload.maxFileSize=104857600    # 单文件最大 100MB
upload.maxRequestSize=209715200 # 请求最大 200MB

# 安全配置
bcrypt.workFactor=12            # 密码加密强度

⚠️ 重要:请务必修改 db.password 为你本地 MySQL 的实际密码!

第五步:配置 Tomcat 服务器

5.1 下载 Tomcat

如果尚未安装 Tomcat,请前往 Apache Tomcat 官网 下载 Tomcat 9.x 版本。

5.2 在 IDEA 中配置 Tomcat

  1. 点击右上角的 Add Configuration(或 RunEdit Configurations

  2. 点击左上角的 + 号,选择 Tomcat ServerLocal

  3. 配置 Tomcat 服务器:

    • Name:输入 Micro Tomcat(可自定义)
    • Application server:点击 Configure,添加 Tomcat 安装目录
    • URL:设置为 http://localhost:8080/Micro
    • On 'Update' action:选择 Update classes and resources
    • On frame deactivation:选择 Update classes and resources
  4. 切换到 Deployment 选项卡:

    • 点击 + 号,选择 Artifact
    • 选择 Micro:war exploded
    • Application context 设置为 /Micro
  5. 点击 ApplyOK 保存配置

5.3 配置截图参考

Server 选项卡配置:

┌─────────────────────────────────────────────────────────┐
│ Name: Micro Tomcat                                      │
│ Application server: Apache Tomcat 9.0.xx                │
│ URL: http://localhost:8080/Micro                        │
│ ☑ Open browser after launch                            │
│ HTTP port: 8080                                         │
└─────────────────────────────────────────────────────────┘

Deployment 选项卡配置:

┌─────────────────────────────────────────────────────────┐
│ Deploy at the server startup:                           │
│   + Micro:war exploded                                  │
│     Application context: /Micro                         │
└─────────────────────────────────────────────────────────┘

第六步:运行项目

  1. 点击右上角的绿色 Run 按钮(或按 Shift + F10
  2. 等待 Tomcat 启动完成
  3. 浏览器会自动打开 http://localhost:8080/Micro
  4. 页面会自动跳转到 http://localhost:8080/Micro/app/feed

🎉 恭喜!项目已成功运行!


📁 项目结构

Micro/
├── src/
│   ├── main/
│   │   ├── java/com/micro/          # Java 源代码
│   │   │   ├── dao/                  # 数据访问层
│   │   │   │   └── impl/             # DAO 实现类
│   │   │   ├── entity/               # 实体类
│   │   │   ├── exception/            # 自定义异常
│   │   │   ├── filter/               # 过滤器
│   │   │   ├── listener/             # 监听器
│   │   │   ├── service/              # 业务逻辑层
│   │   │   │   └── impl/             # Service 实现类
│   │   │   ├── servlet/              # 控制器(Servlet)
│   │   │   └── util/                 # 工具类
│   │   ├── resources/                # 配置文件
│   │   │   ├── application.properties # 应用配置
│   │   │   ├── logback.xml           # 日志配置
│   │   │   └── db/
│   │   │       └── schema.sql        # 数据库脚本
│   │   └── webapp/                   # Web 资源
│   │       ├── index.jsp             # 入口页面
│   │       ├── static/               # 静态资源
│   │       │   ├── css/              # 样式文件
│   │       │   ├── js/               # JavaScript 文件
│   │       │   └── uploads/          # 用户上传文件
│   │       └── WEB-INF/
│   │           ├── web.xml           # Web 配置
│   │           └── jsp/              # JSP 页面
│   │               ├── layout/       # 布局模板
│   │               └── admin/        # 管理后台页面
│   └── test/                         # 测试代码
├── document/                         # 项目文档
│   └── 需求规格说明书.md
├── pom.xml                           # Maven 配置
└── README.md                         # 项目说明

🔧 常见问题

Q1: Maven 依赖下载失败

解决方案:配置 Maven 镜像源

在 IDEA 中打开 FileSettingsBuild, Execution, DeploymentBuild ToolsMaven,勾选 User settings file 并编辑 settings.xml,添加阿里云镜像:

<mirrors>
  <mirror>
    <id>aliyun</id>
    <name>Aliyun Maven Mirror</name>
    <url>https://maven.aliyun.com/repository/public</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
</mirrors>

Q2: 数据库连接失败

检查以下几点

  1. MySQL 服务是否已启动
  2. 数据库名称是否为 micro
  3. application.properties 中的用户名和密码是否正确
  4. MySQL 是否允许远程连接(如果不是 localhost)

Q3: Tomcat 启动报错 "Address already in use"

解决方案:8080 端口被占用,选择以下任一方式解决:

# 方式一:查找并结束占用 8080 端口的进程
# macOS/Linux
lsof -i :8080
kill -9 <PID>

# Windows
netstat -ano | findstr :8080
taskkill /PID <PID> /F

# 方式二:修改 Tomcat 端口
# 在 IDEA 的 Run Configuration 中修改 HTTP port 为其他端口(如 8081)

Q4: 页面样式或 JS 加载失败

检查以下几点

  1. Application context 是否设置为 /Micro
  2. 浏览器控制台是否有 404 错误
  3. 尝试清除浏览器缓存后刷新

Q5: 文件上传失败

检查以下几点

  1. file.storage.path 配置的目录是否存在
  2. 目录是否有写入权限
  3. 上传文件是否超过大小限制

📝 API 文档

项目提供 RESTful API 接口,主要包括:

模块 基础路径 说明
认证 /api/auth/* 注册、登录、登出
动态 /api/posts/* 动态的 CRUD 操作
评论 /api/comments/* 评论功能
用户 /api/users/* 用户资料管理
关注 /api/follows/* 关注关系管理
上传 /api/upload 文件上传
管理 /api/admin/* 管理后台接口

详细的 API 文档请参阅:需求规格说明书


🌐 页面路由

路径 说明
/app/feed 首页动态流
/app/login 登录页面
/app/register 注册页面
/app/post?id=xxx 动态详情
/app/profile?id=xxx 用户主页
/app/profile/edit 编辑资料
/app/follows?type=xxx&id=xxx 关注/粉丝列表
/app/search?q=xxx 搜索结果
/app/create-post 发布动态
/app/admin 管理后台

👥 用户角色

角色 权限说明
USER 普通用户,可使用所有基础功能
ADMIN 管理员,额外拥有后台管理权限

💡 提示:可在数据库中直接修改用户的 role 字段为 ADMIN 来创建管理员账号。


🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

📮 联系方式

如有问题或建议,欢迎通过以下方式联系:


Made with ❤️ by PL shi shabi

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors