blogs博客系统项目介绍
blogs博客系统项目介绍
- blogs
- 项目简介
- 项目展示
- 项目详述
blogs
一个简易的博客系统
GitHub地址:点击查看项目源码
Gitee地址:点击查看项目源码
项目简介
该项目是我之前学习的一个项目,一个较为完整的博客系统,具备了常见的博客相关功能,初衷就是为了解决日常的学习记录与总结。
该博客系统大概包含了以下功能:用户的登录与注册、系统的权限管理、发表编辑博客、博客查阅、博客删除、博客评论、博客点赞、个人信息页展示、
个人信息的修改、首页信息显示如热门标签、热门用户、热门博客、新发表博客以及所有博客列表,同时会做阅读量、评论量以及点赞量的统计,
还支持全文搜索,可以快速查找出想要的内容。当然还为管理员提供了后台管理系统,用来管理与维护博客系统,如用户管理,博客管理等。
项目技术:
前端:Thymeleaf模板引擎、Bootstrap以及jQuery;
后端:SpringBoot做基础框架、SpringSecurity做授权与认证、SpringData做数据访问层控制,全文检索使用Elasticsearch、数据库使用MySQL。
当然为了便于测试,也可以继承H2作为测试数据库。项目中的图片上传及图片存储展示使用的一款开源的文件服务器,该文件服务器是基于MongoDB
作为文件信息存储,采用SpringBoot完成项目搭建。
项目管理(打包工具):Gradle。
整个项目目前搭建在阿里云上,服务器主机使用 ECS ,项目容器即服务器采用Tomcat。
项目还是挂在阿里云上,博客系统链接奉上(后台管理就不放了)
点击访问项目网站
登录账号:test 密码:test 当然也可自行注册。
项目部署
可以clone项目后,直接IDE中运行,或者Gradle中依赖了SpringBoot插件,直接bootRun即可。还可以运行打包后生成的jar包,因为SpringBoot
内置了容器。当然,也可以打成war包,部署到外置容器中去,如Tomcat。
项目设计以及实现上的几个点 :
1、项目使用了Thymeleaf模板引擎,来做前端页面的渲染,替代以往的JSP,同时SpringBoot也对Thymeleaf有很好的集成。页面部分还使用
了BootStrap来完成响应式的布局,它提供了很多的样式供使用。另外结合JQuery完成功能控制等等。
2、后端部分,整个项目是采用SpringBoot做为基础框架,它省去了原先Spring额外的繁琐配置,达到开箱即用的效果。当然,如果需要一些
定制化需求,SpringBoot也支持。
3、数据库使用的MySQL,当然我们在测试时可以使用H2这种内存数据库,对于测试来说是很方便的,只需要在SpringBoot中做几个简单配置。
对于数据访问操作的编码上,使用Spring Data JPA来代替以往集成MyBatis的方式,Spring Data JPA实现了JPA规范,使得我们在进行数据层
操作时更加简单,这是JPA的特性,通过完全的ORM映射,我们甚至可以不用写任何一句SQL就可以实现。(默认使用了Hibernate)
4、对于首页的热点信息及关键词搜索功能,使用了全文检索技术,这里使用的Elasticsearch(也可以使用solr),编码上直接使用Spring
Data es,与JPA一样,相比直接使用es的api来说是非常的方便。
4、博客系统中如博客编辑或者用户个人信息中头像设置都涉及到了图片上传,这里我们使用了一款开源的文件服务器
(GitHub地址),用来存储我们图片以及图片访问,它还提供了文件数据管理的可视化界面。
这款文件服务器是基于MongoDB + SpringBoot实现的,对于文件信息,它转做一个File文档对象BSON格式(MongoDB非关系型数据库的特性)进行存储。
因为博客系统中需要上传的图片都是小文件,仅几M,所以使用这款文件服务器可行,如果想要存储超过16M的文件可以使用其他文件服务器,如GridFS、
FastDFS等等。
5、对于权限的控制以及用户认证登录等功能,使用了SpringSecurity这个安全框架,它负责认证与授权,认证如用户登录,授权如对于权限操作
(博客编辑、点赞、评论等等)需要进行登录,后台管理仅允许admin。SpringSecurity有一些核心类,我们只需要按照规范通过编码或者配置文件
去进行权限分配、认证、会话管理以及安全控制如CSRF等等。它也提供了很方便的注解,可以对我们Controller进行细致的权限把控。同时我们在Thymeleaf中也引入了
Security-thymeleaf,在页面编码上我们也可以进行一些侵入式的API操作。
6、对于注册或者博客内容上,除过数据库中实体字段类型以及索引限制(在实体类字段上加上Hibernate注解控制)还在页面上以及实体上添加了校验,
如实体上引入了一些Bean校验的注解(@Size、@Email等等),保证了后台代码的安全。
7、博客编辑集成了markdown的插件来完成博客内容的编写。
项目展示
后台管理
新增用户
首页
个人主页
博客点赞评论
博客编辑
个人设置
博客详情
注册失败
项目详述
模块设计
下图为整个博客系统的模块设计图:
版本参数
技术 | 版本号及相关信息 |
---|---|
JDK | 1.8 |
Gradle | 3.5 |
Spring Boot | 1.5.2. RELEASE |
Thymeleaf | 3.0.3. RELEASE |
Thymeleaf Layout Dialec | 2.2.0 |
MySQL Community Server | 5.7.17 |
MySQL Workbench | 6.3.9 |
Spring Data JPA | 1.11.1. RELEASE |
Hibernate | 5.2.8. Final |
MySQL Connector | J6.0.5 |
H2 Database | 1.4.193 |
Elasticsearch | 2.4.4 |
Spring Data Elasticsearch | 2.1.3. RELEASE |
JNA | 4.3.0 |
Tether1.4.0 | http://tether.io/ |
Bootstrapv4.0.0-alpha.6 | https://v4-alpha.getbootstrap.com/ |
jquEry3.1.1 | http://jquery.com/download/ |
FontAwesome4.7.0 | http://fontawesome.io |
NprogRess0.2.0 | http://ricostacruz.com/nprogress/ |
Thinker-md | http://git.oschina.net/benhail/thinker-md |
jquEryTagsInput1.3.6 | http://xoxco.com/projects/code/tagsinput/ |
BootstrapChosen1.0.3 | https://github.com/haubek/bootstrap4c-chosen |
toast2.1.1 | http:/www.toastrjs.com/ |
Spring Security | 4.2.2. RELEASE |
Thymeleaf Spring Security | 3.0. 2. RELEASE |
Apache Commons Lang | 3.5 |
Markdown parser for the JVM | 0.16 |
Mongo DB | 3.4.4 |
Embedded MongoDB | 2.0.0 |
blogs博客系统项目介绍相关推荐
- 博客系统项目:设计篇
博客系统项目:设计篇 1 由来 2 需求 3 设计 3.1 功能设计 3.1.1 用例图 3.1.2 实体类图 3.1.3 实体关系图 3.2 数据设计 3.2.1 数据模型 4 版面设计 4.1 首 ...
- 博客系统项目:编码篇-基础篇-架构搭建
博客系统项目:编码篇-基础篇 1 背景 2 环境 2.1 环境说明 2.2 模式说明 2.2.1 MTV模式 2.2.2 MVC 3 前置工作 3.1 环境搭建 4 编码实现 4.1 项目调整 4.1 ...
- 个人博客系统--项目实战
个人博客系统–项目实战 先附上设计文档和项目源码. 个人博客设计文档 Github 这项目大概做了十多天,其基本功能都实现了,因为没有美工的关系,界面可能有点丑,请谅解. 后台采用SSH技术,版本为: ...
- dotnet core开源博客系统XBlog介绍
XBlog是dotnet core平台下的个人博客开源系统,它只需要通过Copy的方式即可以部署到Linux和windows系统中:如果你有安全证书那只需要简单配置一下即可提供安全的Https服务.接 ...
- Django博客系统项目需求分析
项目需求分析 需求分析原因 项目中,需求驱动开发.即开发人员需要以需求为目标来实现业务逻辑. 需求分析方式 企业中,借助产品原型图分析需求. 需求分析完后,前端按照产品原型图开发前端页面,后端开发对应 ...
- 个人博客系统项目+测试用例
一.系统主要功能 1.1.账户注册 1.2.登录 1.3.个人信息展示 1.4.文章列表页展示 1.5.发布文章 1.6.修改文章 1.7.删除文章 1.8.作者信息展示 1.9.查询文章 1.10. ...
- shopxo二次开发:博客系统项目 (后台使用 - 教程篇)
开发 · 疑问解答 · 图文详解 重点疑问 · 阐述如下: 针对性解答: 重点疑问 · 阐述如下: 首页侧边导航:一级栏目,二级子栏目(二级标签).三级tag标签[如何修改或新增?] 首页(轮播图上方 ...
- python 博客程序_项目1——博客系统 - Python测试和开发 - OSCHINA - 中文开源技术交流社区...
一.绪言 今天又来更新博文了,学习Java也已经有一段时间了,经过这段时间的学习,我对Java有了更深一层的理解.从刚开始的HelloWorld到了现在的小型网页项目,这中间也经历了很多.话不多说,下 ...
- python项目之博客系统开发-李杰-专题视频课程
python项目之博客系统开发-3133人已学习 课程介绍 系统由于主站.个人博客.后台管理三部分组成,其中包含Web开发中的知识,如:多级评论.文章点赞.主题定制.iframe伪Aj ...
最新文章
- 实验四-常用图像增强方法
- 首款AI+智能工程头盔发布,小松(中国)与天远科技ICT战略签约成功举行
- 软件压力测试linux服务器,使用http_load来给Linux系统的服务器做压力测试
- Parse a document from a String
- 跟我一起学.NetCore之.NetCore概述
- ❤『面试知识集锦100篇』3.mysql篇丨mysql基础知识和面试真题,看完不收藏算我输!!
- iis7mysql 链接不上_Win7 64位IIS7出现数据库链接出错的解决办法
- linux账户管理代码和截图,linux 用户管理(示例代码)
- 2022年最受欢迎的7种机器学习的编程语言汇总排名详解
- php 创建zip,如何使用PHP ZipArchive创建zip文件并下载?
- 动量法与指数加权移动平均
- 小程序电子名片 制作
- u盘怎么装服务器系统教程,u盘装服务器系统教程
- 【老生谈算法】matlab实现细菌觅食算法(BFA)源码——粒子群算法
- paly 框架Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
- php代码运行后空白什么原因,PHP空白页面常见原因及解决方法
- 股票配资系统平台源码搭建-股票配资交易软件开发
- c语言程序安装软件,c语言程序下载软件
- SPM软件的参考资料链接
- ko 绑定html,WeX5的正确打开方式(3)——绑定机制
热门文章
- 种草!超好用的PDF转换器上线啦~
- 冬奥无人餐厅:大厨竟是“师出名门”的机器人
- 基于STM32的机器人控制仿真
- 痞子衡嵌入式:再测i.MXRT1060,1170上的普通GPIO与高速GPIO极限翻转频率
- AirDisk产品Q3C两大功能
- 需求规格说明书和软件概要设计文档最终版上线~
- redis集群搭建参考文档
- 「Unity3D」解决2022的PackageManager无法显示官方插件Burst和Collections的最新版本
- 基于springboot的企业员工工资管理系统(财务系统)
- html表单边框怎么加颜色?html form标签的边框颜色实例