环境搭建与技术栈说明


CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术

熟悉快速开发框架:SpringBoot2.3.x 整合 SpringMVC + Mybatis
熟悉版本控制:Maven3.6.X + Git
数据库以及文件存储:MySQL + 文件存储阿里云OSS
熟悉页面模板引擎:Thymleaf3.x
第三方工具:网页长图生成工具Wkhtmltopdf + 验证码生成工具kaptcha
中间件:分布式缓存Redis + 全文检索ElasticSearch + Kafka + 本地缓存Caffeine
权限框架:Spring Securtiy + Spring Actuator
熟悉前端:Ajax + Vue + BootStrap + HTML + jQuery
community->src->main-> java->com.nowcoder.community->

annotation 注解LoginRequired;
aspect 切面SeviceLogAspect;
Config 配置KaptchaConfig,QuartzConfig,RedisConfig,SecurityConfig,ThreadConfig,WebMvcConfig,WkConfig;
controller控制器 CommentController,DataController,DisscussPostController,FollowController,HomeController,LikeController,LoginController,MessageController,SearchController,ShareController,UserController
advice ExceptionAdvice
interceptor DataInterceptor,LoginRequiredInterceptor,MessageInterceptor,MessageInterceptor

dao elasticsearch DiscussPostRepository
CommentMapper,DisscussPostMapper,UserMapper,MessageMapper
entity Comment,DisscussPost,Event,LoginTicket,Message,Page,User
event EventConsumer,EventProducer

quartz PostScoreRefreshJob
service CommentService,DataService,DisscussPostService,ElasticsearchService,FollowService,LikeService,MessageService,UserService
util CommunityContstant,CommunityUtil,CookieUtil,HostHolder,RedisKeyUtil,SenstitiveFilter
CommunityApplication

community->src->main->resource
mapper comment-mapper.xml,discusspost-mapper.xml,message-mapper.xml,user-message.xml
static
css disscuss-detail.css,global.css,letter.css,login.css
html ajax-demo.html,student.html
img 404.png,captcha.png,error.png
js discuss.js,global.js,index.js,letter.js,profile.js,register.js,setting.js


application.properties
logback-spring.xml
sensitive-word.txt

数据库设计

SET NAMES utf8 ;
--
-- Table structure for table `comment`
--
DROP TABLE IF EXISTS `comment`;SET character_set_client = utf8mb4 ;
CREATE TABLE `comment` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) DEFAULT NULL,`entity_type` int(11) DEFAULT NULL,`entity_id` int(11) DEFAULT NULL,`target_id` int(11) DEFAULT NULL,`content` text,`status` int(11) DEFAULT NULL,`create_time` timestamp NULL DEFAULT NULL,PRIMARY KEY (`id`),KEY `index_user_id` (`user_id`) /*!80000 INVISIBLE */,KEY `index_entity_id` (`entity_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Table structure for table `discuss_post`
--
DROP TABLE IF EXISTS `discuss_post`;SET character_set_client = utf8mb4 ;
CREATE TABLE `discuss_post` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` varchar(45) DEFAULT NULL,`title` varchar(100) DEFAULT NULL,`content` text,`type` int(11) DEFAULT NULL COMMENT '0-普通; 1-置顶;',`status` int(11) DEFAULT NULL COMMENT '0-正常; 1-精华; 2-拉黑;',`create_time` timestamp NULL DEFAULT NULL,`comment_count` int(11) DEFAULT NULL,`score` double DEFAULT NULL,PRIMARY KEY (`id`),KEY `index_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Table structure for table `login_ticket`
--
DROP TABLE IF EXISTS `login_ticket`;SET character_set_client = utf8mb4 ;
CREATE TABLE `login_ticket` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) NOT NULL,`ticket` varchar(45) NOT NULL,`status` int(11) DEFAULT '0' COMMENT '0-有效; 1-无效;',`expired` timestamp NOT NULL,PRIMARY KEY (`id`),KEY `index_ticket` (`ticket`(20))
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Table structure for table `message`
--
DROP TABLE IF EXISTS `message`;SET character_set_client = utf8mb4 ;
CREATE TABLE `message` (`id` int(11) NOT NULL AUTO_INCREMENT,`from_id` int(11) DEFAULT NULL,`to_id` int(11) DEFAULT NULL,`conversation_id` varchar(45) NOT NULL,`content` text,`status` int(11) DEFAULT NULL COMMENT '0-未读;1-已读;2-删除;',`create_time` timestamp NULL DEFAULT NULL,PRIMARY KEY (`id`),KEY `index_from_id` (`from_id`),KEY `index_to_id` (`to_id`),KEY `index_conversation_id` (`conversation_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Table structure for table `user`
--
DROP TABLE IF EXISTS `user`;SET character_set_client = utf8mb4 ;
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(50) DEFAULT NULL,`password` varchar(50) DEFAULT NULL,`salt` varchar(50) DEFAULT NULL,`email` varchar(100) DEFAULT NULL,`type` int(11) DEFAULT NULL COMMENT '0-普通用户; 1-超级管理员; 2-版主;',`status` int(11) DEFAULT NULL COMMENT '0-未激活; 1-已激活;',`activation_code` varchar(100) DEFAULT NULL,`header_url` varchar(200) DEFAULT NULL,`create_time` timestamp NULL DEFAULT NULL,PRIMARY KEY (`id`),KEY `index_username` (`username`(20)),KEY `index_email` (`email`(20))
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8;


牛客社区论坛项目(一)相关推荐

  1. 牛客社区论坛项目(二)

    注册登录 1. 发送邮件 在自己邮箱开启SMTP服务,pom.xml中引入依赖 <dependency><groupId>org.springframework.boot< ...

  2. 仿牛客社区项目笔记-帖子模块(核心)

    仿牛客社区项目笔记-帖子模块(核心) 1. 帖子模块 1.1 过滤敏感词 1.2 发布帖子 1.3 帖子详情 1.4 显示评论 1.5 添加评论 1.6 私信列表 1.7 发送私信 1. 帖子模块 分 ...

  3. 仿牛客社区项目(第一章)

    文章目录 第一章:初始 SpringBoot,开发社区首页 仿牛客社区项目开发首页功能 一. 实体引入 1. User类 2. DiscussPost 类 3. Page类 二. 配置文件 三. da ...

  4. 社区java视频大宝库_Java大牛手把手带你实现社区论坛项目实战课程

    Java大牛手把手带你实现社区论坛项目实战课程 Mr李 Java 2019-12-18 https://www.jsdaima.com/video/900.html Java大牛手把手带你实现社区论坛 ...

  5. 牛客网论坛最具争议的 Java 面试成神笔记,GitHub 已下载量已过百万

    程序员内部一直流传这一句话:面试看牛客 刷题看力扣牛客网作为国内最牛的程序员面试网站,一直在程序员内部颇负盛名,其中用户更是卧虎藏龙! 有国内一线大厂的企业招聘 还有一些低调的互联网大牛实力就和天龙八 ...

  6. 2019牛客网高级项目

    本项目是一个基于SpringBoot的社区平台,实现了牛客网讨论区的功能.实现了邮箱注册.验证码登录.发帖.评论.私信.点赞.关注.统计网站访问次数等功能,数据库使用Mybatis.Redis,使用K ...

  7. 仿牛客社区开发--搜索引擎模块

    1.Elasticsearch入门 Elasticsearch是目前性能最好.最流行的搜索引擎 首先,需要把数据提交到搜索引擎里,然后,搜索引擎存数据的时候会进行分词.建立索引,通过索引进行搜索.El ...

  8. 牛客网中级项目学习笔记(一)

    牛客中级项目学习: Controller 解析web请求 Service 业务层 DAO(data access object)数据处理层 database 底层数据库 重定向 代码如下: @Requ ...

  9. 牛客网论坛最具争议的Java面试成神笔记,GitHub已下载量已过百万

    程序员内部一直流传这一句话: 面试看牛客 刷题看力扣 牛客网作为国内最牛的程序员面试网站,一直在程序员内部颇负盛名,其中用户更是卧虎藏龙! 有国内一线大厂的企业招聘 还有一些低调的互联网大牛实力就和天 ...

最新文章

  1. hibernate mysql 自动建表_配置hibernate根据实体类自动建表功能
  2. transformer在CV领域超越了CNN
  3. Java 程序死锁问题原理及解决方案
  4. Python入门100题 | 第065题
  5. 移动web开发都会遇到的坑(会持续更新)
  6. python STL分解
  7. QT的QStyle类的使用
  8. 用户id可以出现在url中吗_下载Google Drive中的文件
  9. 所有人都可以是开发人员——《Office 365开发入门指南》视频教程即将上市
  10. windows10环境下载labelImg及使用方法
  11. Matlab资料汇总暨MATLAB中文论坛帖子整理(一)
  12. 毕业设计结论计算机应用技术,计算机应用技术(网络、软件)毕业设计实施方案...
  13. kiv8测量方法_理邦elite V8 病人监护仪
  14. BPM平台在企业业务系统中使用的价值讨论
  15. MyBatis 框架的思想及其第一次使用
  16. 【26天高效学完Java编程】Day03:Java中的运算符与流程控制语句的基本概念与实操
  17. 如何对电脑屏幕进行监控?
  18. web前端高级React - React从入门到进阶之React条件渲染
  19. 5.1.6 守护进程daemon
  20. 易买网更多新闻代码_新闻 | 1022Bewhy结婚等更多资讯

热门文章

  1. Kernel 4.9的BBR拥塞控制算法与锐速
  2. easypoi 模板语法
  3. 存储学习之--StarWind虚拟存储配置和Linux客户端连接
  4. 首次揭秘,阿里P5到P10的晋升方法论
  5. 赠书五本《数据分析咖哥十话》
  6. 总结阿里p5 p6前端面试题,并一一解决
  7. NYOJ1239 引水工程(最小生成树,Prim)
  8. 操作系统面试题(十二):逻辑地址和物理地址
  9. 西门子s7-100模拟器仿真软件下载
  10. Web应用接入Github登录