Java实现小型博客系统

本文介绍了基于SpringBoot、Dubbo、Zookeeper、Redis和MySQL实现的分布式博客系统。功能涵盖账号管理、文章增删改查、评论和点赞,前端采用Html和Thymeleaf。项目优化了前端界面、数据库交互,禁止了重复登录,并通过Redis实现热点文章缓存和防止重复登录。
摘要由CSDN通过智能技术生成

Java实现小型博客系统

本项目基于SpringBoot、Dubbo、Zookeeper、Redis、MySQL实现了一个分布式博客系统。功能包括账号的增删改查、文章的增删改查、文章评论的增删改查、热点文章的存取、文章的点赞等。
项目地址:https://github.com/ZhangHZ9802/MyLittleBlogSystem-Java-
(看过我之前文章的朋友们应该能看出这是我对之前项目的重构。主要改变有:优化了前端的界面、优化了前后端的交互、取消了数据库的外键由应用层实现数据库的逻辑关系、禁止重复登录变成挤掉之前登录者、优化了数据库向上提供的方法、优化了数据库的存取等)

主要功能实现介绍:

项目整体展示

欢迎界面:
在这里插入图片描述
登录界面:
在这里插入图片描述
用户主界面:
在这里插入图片描述
文章界面:
在这里插入图片描述评论和点赞界面(在文章界面内):
在这里插入图片描述

项目启动

项目是基于SpringBoot和Dubbo、Zookeeper实现的分布式项目,但当然也可以在一个主机上运行。项目的运行首先需要有Mysql数据库、Redis数据库和Zookeeper服务器的支持,MySQl数据库也需要提前建立好相应的库和表,建立过程见github。
启动时,需要先启动好Redis和Zookeeper服务器。首先启动provider-mysql,再启动provider-redis,最后启动客户端client即可正常运行。 访问localhost:8091即可进入博客。

项目的主要架构层次

在这里插入图片描述

本项目使用了三个服务器来实现后台。分别是client、provider-mysql和provider-redis。各个项目之间的联系如下:
在这里插入图片描述

主要实现功能:

  1. 账号:
    a. 账号的注册、修改、删除
    b. 账号的登录、登出
    c. 账号防止重复登录
    d. 不退出浏览器的时候可以延续之前的登录
  2. 文章:
    a. 文章的撰写、存取
    b. 文章的修改、删除
  3. 评论:
    a. 评论的撰写、修改、删除
  4. 点赞:
    a. 对文章的点赞、取消与统计

各个项目功能简介

api

定义了服务提供者provider分别提供的数据库功能的接口。

common

定义了远程方法调用时传递的公共对象类。

client

客户端提供前端页面与后端的交互,页面的跳转与内容的显示,通过Dubbo远程调用数据库的服务,获取并展示博客主要信息,并提供增删改的界面。

主要功能有:

  1. 接收并处理前端请求,调用数据库方法获取数据,返回页面给前端
  2. 拦截未登录情况下对除登录界面外的页面访问,拦截已经被挤掉的账号的请求(会检测redis中的userID和SessionID对,看当前用户的userID中存的SessionID是否为当前浏览器的sessionID,如果是则可以访问,不然则返回到登录界面)
  3. 监听所有HttpSession的消失事件(session消失则删除redis中记录的相关登录信息)。

相当于MVC三层架构的Controller层和View层。
在这里插入图片描述

provider-mysql

提供MySQL数据库的相关操作功能,实现账号、文章、评论的增删改查功能,并通过Dubbo将这些服务注册到Zookeeper上供客户端使用。
相当于MVC三层架构的Model层。
在这里插入图片描述

数据库

注意:这里的数据库之间没有使用外键,数据库之间的逻辑关系都是在应用层实现的。
(外键会使得本来就比较复杂的数据库更加错综复杂,难以维护;对数据库的性能有较大的影响,在高并发的时候尤为突出;容易出现死锁)

CREATE DATABASE zhz_blog;
CREATE TABLE user_account(
	user_id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
	user_account VARCHAR(20) NOT NULL UNIQUE,
	user_password VARCHAR(20) NOT NULL
);
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值