
BBS项目
hjukyjhg56
立个flag
多写博客,改掉急躁的坏毛病
展开
-
BBS论坛项目相关-数据库设计总结
BBS论坛项目相关-数据库设计总结用户表idusernamepasswordsaltemailtypestatusactivationCodeheaderUrlcreateTime用户id用户名密码密码盐值邮箱版主/管理员/普通用户是否有效邮箱激活码头像路径创建时间登陆凭证表iduserIdticketstatusexpired主键用户id用户登陆唯一凭证是否有效过期时间评论表iduserI原创 2020-09-02 15:12:23 · 1538 阅读 · 1 评论 -
BBS论坛项目相关-19:零碎功能补充与项目部署
BBS论坛项目相关-19:生成长图模块原创 2020-08-18 11:16:25 · 775 阅读 · 0 评论 -
BBS论坛项目相关-18:热帖排行模块
BBS论坛项目相关-18:热帖排行模块热帖排行根据帖子是否加精,评论数,点赞数,收藏数以及发布时间等进行计算加分然后排名Log(精华分+评论数10+点赞数2+收藏数*2)+(发布时间-纪元)用log让前期评论点赞等权重较重,后期影响较小。为了效率较高,每次点赞评论等不立即进行算分,而是放入redis中进行缓存,之后定时进行计算。设计一个帖子分数的key,当发生点赞评论等操作时就存入redis中。redis中只是存储帖子分数发生变化的帖子id,所以使用redis的set存储,去重,防止重复计算。原创 2020-08-17 21:19:12 · 1246 阅读 · 0 评论 -
BBS论坛项目相关-17:Spring Quartz任务执行和调度
BBS论坛项目相关-17:Spring Quartz任务执行和调度任务执行和调度线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。JDK线程池:ExecutorService :普通线程池ScheduledExecutorService:可执行定时任务的线程池Spring线程池:原创 2020-08-17 21:18:02 · 772 阅读 · 0 评论 -
BBS论坛项目相关-15:置顶,加精,删除功能模块
BBS论坛项目相关-15:置顶,加精,删除功能模块需求置顶,加精,删除,修改帖子类型权限管理:版主可以执行置顶,加精操作,管理员可以删除按钮显示:版主可以看到置顶,加精按钮,管理员可以看到删除按钮置顶,加精,删除注意置顶,加精等功能都需要对帖子进行更新操作,所以需要触发topic发帖事件,在事件中更新ES相关帖子详情。最后返回一个json字符串,异步提醒设置完毕// 置顶 @RequestMapping(path = "/top", method = RequestMethod.POS原创 2020-08-17 16:42:37 · 1433 阅读 · 0 评论 -
BBS论坛项目相关-14:Spring Security与用户权限控制
BBS论坛项目相关-14:Spring Security与用户权限控制需求:登录检查:之前使用拦截器实现,现在改为SpringSecurity实现授权配置:对当前系统内所包含的所有的请求,分配访问权限(普通用户,版主,管理员)认证方案:绕过security认证流程,采用原本的认证方案CSRF配置:防止CSRF攻击的基本原理,以及表单、AJAX相关的配置。授权配置在常量接口中配置用户权限常量。public interface CommunityConstant { /**原创 2020-08-17 16:08:25 · 787 阅读 · 0 评论 -
BBS论坛项目相关-13:Spring Security相关
BBS论坛项目相关-13:Spring Security相关Spring SecuritySpring Security是一个专注于为java应用程序提供身份认证和授权的框架,它的强大之处在于它可以轻松扩展以满足自定义的需求。特征:对身份的认证和授权提供全面的,可扩展的支持,防止各种攻击,如会话固定攻击,点击劫持,csrf攻击等。支持与Servlet API,Spring MVC等web技术集成。Spring MVC:所有请求都发送给DispatcherSevlet,由DispatcherSevl原创 2020-08-17 14:55:32 · 824 阅读 · 0 评论 -
BBS论坛项目相关-12:ES搜索相关
BBS论坛项目相关-12:ES搜索相关ElasticSearchElasticsearch:分布式的Restful风格的搜索引擎搜索速度快,可提供实时的搜索服务,便于水平扩展,每秒可以处理PB级海量数据相关术语:索引,类型,文档,字段集群,节点,分片,副本Springboot中声明的ES版本为6.4.3,9200端口可以在IKAnalyzer.cfg.xml配置自己的dic字典文件curl -X PUT “localhost:9200/test” 添加索引—返回json格式curl -X原创 2020-08-16 19:08:04 · 899 阅读 · 0 评论 -
BBS论坛项目相关-11:Kafka异步消息队列相关
BBS论坛项目相关-11:Kafka异步消息队列相关原创 2020-08-15 21:32:26 · 998 阅读 · 0 评论 -
BBS论坛项目相关-10:Redis关注模块和优化登陆模块
BBS论坛项目相关-10:Redis关注模块和优化登陆模块需求关注,取消关注功能统计用户粉丝数,关注数A关注了B,则A是B的follower,B是A的Followee(目标)关注的目标可以是用户,帖子,题目等,在实现时将这些目标抽象为实体关注为了便于统计,将关注人和被关注对象都设置一个key键值,这样用户关注时,用户自己的关注列表会进行统计,被关注的对象的粉丝列表也会进行统计实体类型:帖子:1,评论:2,用户:3用户的关注列表:Followee关注目标的key:用户可能关注的是一个用户对原创 2020-08-14 20:35:41 · 850 阅读 · 0 评论 -
BBS论坛项目相关-9:Redis点赞模块
BBS论坛项目相关-9:Redis点赞模块点赞对于某个实体的赞,key对应用entityType和entityId拼接PREFIX_ENTITY_LIKE + SPLIT + entityType + SPLIT + entityId对于实体的赞采用set数据结构,field为用户id,可用于记录对该实体点赞的用户,此外还需要记录该用户是否已经对该实体点过赞,点过了再点就会取消点赞。对于某个用户的点赞:key为用户id进行拼接PREFIX_USER_LIKE + SPLIT + userId,对于原创 2020-08-14 16:15:55 · 949 阅读 · 0 评论 -
BBS论坛项目相关-8:Redis相关
BBS论坛项目相关-8:Redis优化和点赞模块原创 2020-08-14 11:12:44 · 828 阅读 · 0 评论 -
BBS论坛项目相关-7:统一异常处理和日志记录
BBS论坛项目相关-7:统一异常处理和日志记录统一异常处理@ControllerAdvice:用于修饰类,表示该类是controller配置类;在此类中,可以对controller进行三种全局配置:异常处理方案,绑定数据方案,绑定参数方案@ExceptionHandler:用于修饰方法,该方法会在controller出现异常后被调用,用于处理捕获到的异常@ModelAttribute:用于修饰方法,在controller方法执行前被调用,用于为Model对象绑定参数@DataBinder:用于修饰原创 2020-08-13 21:42:29 · 828 阅读 · 0 评论 -
BBS论坛项目相关-6:私信模块(SQL)
BBS论坛项目相关-6:私信模块功能私信列表:查询当前用户的会话列表每个会话只显示一条最新的私信支持分页显示私信详情:查询每个会话所包含的私信支持分页查询会话表:id,from_id,to_id,conversation_id(将id小的放在前面,大的放在后面,设置这一项的目的是为了以后直接通过会话id进行查询筛选),content,status(0-未读,1-已读,2-),create_time私信列表私信列表只显示最新的一条会话:按照conversation_id分组,查询条件:f原创 2020-08-13 20:09:28 · 1295 阅读 · 0 评论 -
BBS论坛项目相关-5:评论模块
BBS论坛项目相关-5:评论模块事务管理事务管理:ACID常见并发异常:第一类丢失更新,第二类丢失更新脏读、不可重复读、幻读第一类丢失更新:某个事务的回滚,导致另一个事务已更新数据丢失了。第二类丢失更新:某个事务的提交,导致另一个事务已更新的数据丢失了。脏读:某个事务读取了另一个事务未提交的数据。不可重复读:某个事务对同一数据前后读取的结果不一致。幻读:某一个事务对同一个表前后查询的行数不一致。常见的隔离级别:读取未提交数据(最低,以上并发异常都可能出现)读取已提交数据可重复读原创 2020-08-13 16:46:53 · 1132 阅读 · 0 评论 -
BBS论坛项目相关-4:发帖模块
BBS论坛项目相关-4:发帖模块过滤敏感词前缀树trie,字典树,查找树查找效率高,消耗内存大,应用:字符串检索,词频统计,字符串排序等敏感词过滤器定义前缀树,根据敏感词,初始化前缀树,编写过滤敏感词的方法...原创 2020-08-12 22:32:27 · 1057 阅读 · 0 评论 -
BBS论坛项目相关-3:用户登陆模块
BBS论坛项目相关-3:用户登陆模块会话管理HTTP是无状态,有会话的。无状态:在同一个连接中,两个执行成功的请求之间是没有关系的。使用HTTP的头部扩展,HTTP Cookie可以解决这个问题,使用cookie让http协议变为有状态。CookieHTTP Cookie是服务器发送到用户浏览器并保存到本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器。使用cookie让http协议变为有状态Cookie默认存在内存原创 2020-08-12 20:50:14 · 931 阅读 · 0 评论 -
BBS论坛项目总结(持更),附源码
总结各个功能实现的简单思路,自己按心情总结的,持续更新中~~原创 2020-08-12 16:19:57 · 3584 阅读 · 0 评论 -
BBS论坛项目相关-2:邮件激活和注册模块
BBS论坛项目相关-2:用户登陆模块原创 2020-08-12 15:14:13 · 1348 阅读 · 0 评论 -
BBS论坛项目相关-1:相关工具Spring,MyBatis等(持更)
BBS论坛项目相关-1:相关工具Spring,MyBatis等(持更)Spring 入门Springboot的入口@SpringBootApplicationpublic class CommunityApplication { public static void main(String[] args) { SpringApplication.run(CommunityApplication.class, args); }}@SpringBootApplica原创 2020-08-11 20:21:38 · 882 阅读 · 2 评论