# 牛客社区学习项目 **Repository Path**: zcyr/nowcoder-community-study ## Basic Information - **Project Name**: 牛客社区学习项目 - **Description**: 在校期间, 在牛客网找到的项目, 跟着制作学习, 用自己的理解改进了本项目的一些设计. - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 2 - **Created**: 2022-04-19 - **Last Updated**: 2025-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NowCoder 社区学习项目 ## 使用的框架和技术 * Spring Boot * MyBatis * Redis * Kafka * Thymeleaf 模板引擎 * Elasticsearch * MySQL ## 功能特性 * 用户注册与登录 * 发布讨论帖 * 评论与回复 * 点赞功能 * 私信系统 * 关注/粉丝系统 * 敏感词过滤 * 邮件激活 * 搜索功能 * 用户设置(头像上传、密码修改) ## 项目结构 ``` src/ ├── main/ │ ├── java/ │ │ └── com.nowcoder.community/ │ │ ├── annotation/ # 自定义注解 │ │ ├── aspect/ # AOP切面 │ │ ├── config/ # Spring配置类 │ │ ├── controller/ # 控制器 │ │ ├── dao/ # 数据访问层 │ │ ├── entity/ # 实体类 │ │ ├── event/ # 事件处理 │ │ ├── service/ # 业务逻辑层 │ │ ├── util/ # 工具类 │ │ └── CommunityApplication.java # Spring Boot主启动类 │ └── resources/ │ ├── application.properties # 配置文件 │ ├── mappers/ # MyBatis映射文件 │ ├── templates/ # Thymeleaf模板 │ └── static/ # 静态资源 └── test/ └── java/ └── com.nowcoder.community/ └── CommunityApplicationTests.java # 测试类 ``` ## 安装和运行 1. 克隆仓库 ``` git clone https://gitee.com/zcyr/nowcoder-community-study ``` 2. 进入项目目录 ``` cd nowcoder-community-study ``` 3. 运行项目 ``` ./mvnw spring-boot:run ``` ## 新知识学习 * Redis 缓存用户、验证码、点赞和关注信息 * Kafka 异步消息处理 * Thymeleaf 模板引擎使用 * Elasticsearch 实现搜索功能 * 使用ThreadLocal保存用户信息(HostHolder类) * 自定义注解实现登录验证(LoginRequire和RestLoginRequire) * 使用AOP记录服务调用日志 * 敏感词过滤(Trie树算法实现) * 邮件发送 * 使用Redis实现点赞、关注计数 * 使用Elasticsearch实现讨论帖搜索 ## 项目说明 这是一个学习性质的社区项目,实现了基本的社交功能。使用了现代Web开发的常用技术栈,包括Spring Boot、MyBatis、Redis、Kafka和Elasticsearch等。项目中包含了丰富的注解和AOP使用示例,以及各种实用工具类和异常处理机制。