java搭建博客系统_Spring boot 搭建个人博客系统(一)——整体思路

Spring boot 搭建个人博客系统(一)——整体思路

一直想用Spring boot 搭建一个属于自己的博客系统,刚好前段时间学习了叶神的牛客项目课受益匪浅,乘热打铁也主要是学习,好让自己熟悉这类项目开发的基本流程。

0. 思路

博客的基本作用就是博主写文章,读者浏览文章,因此博客的基本功能就是文章的发布和阅读;同时为了方便浏览加入主题分类和标签分类等功能,为了增加互动加入赞踩和评论等功能;另外为了博客系统的完整性加入了文章点击量,热门文章排行,文章按月归档等功能。

博客功能列表为:

用户注册登录功能

Markdown文章发布功能

文章分页显示

文章主题分类

文章标签/标签云

文章点击量

热门文章排行

赞踩功能

评论/回复邮件提醒功能

评论敏感词过滤

Archives/按月归档

1. 搭建项目工程

使用IDEA搭建项目工程:File->New->Project->Maven->输入group和artifact等->Finish

1.1 引入spring boot依赖包

Maven项目是通过pom.xml文件配置工程依赖,项目组织结构等,修改pom.xml文件引入sping boot依赖包和工程开发依赖的包等

4.0.0

cn.tzy

blog

1.0-SNAPSHOT

wenda

Demo project for Spring Boot

jar

org.springframework.boot

spring-boot-starter-parent

1.4.0.RELEASE

UTF-8

1.8

org.springframework.boot

spring-boot-devtools

org.springframework.boot

spring-boot-starter-velocity

org.springframework.boot

spring-boot-starter-web

其中,引入spring-boot-devtools依赖是为了方便工程开发,比如静态文件修改之后无需重新运行整个工程,只需要重新编译修改的文件。

org.springframework.boot

spring-boot-devtools

另外,引入spring-boot-velocity依赖作为Web工程的模板引擎,用来将后端数据渲染到HTML页面再传输到前端浏览器显示。模板引擎的诞生是为了将显示与数据分离,从Sevlet开发时的数据页面混杂在一起变成了现在的数据和显示分离,从而也将页面渲染分成了前端渲染和后端渲染;后端渲染主要就是通过模板引擎将后端数据填充到模板页面中用来传输到前端浏览器显示,前端渲染主要是浏览器对页面CSS样式和JS动作的渲染。

1426688ec38eed732eedd16e52b70e50.png

org.springframework.boot

spring-boot-starter-velocity

同时,引入spring-boot-web依赖作为工程Web开发的基础包,Webk开发需要的一些注解,接口,类等都在这个包中。

org.springframework.boot

spring-boot-starter-web

1.2 工程结构

项目Web程序的搭建基于MVC的设计模式,即模型(Model)—视图(View)—控制器(Controller)。控制器用来接收请求,发送响应;视图用来渲染显示,模型用作表征数据实体。因此搭建工程结构如下图所示:

28178384a2c3771f2a6f1d7b0f3c7c31.png

2. 搭建数据库

建好数据库用于存储博客系统数据。创建user表用于存储系统用户信息,创建ticket表用于存储用户登录的ticket信息,创建aricle表用于存储文章信息,创建tag表用于存储标签信息,创建article_tag表用于存储文章标签关系信息,创建comment评论表用于存储文章评论信息。

table

describe

user

用户信息表

ticket

登录信息表

aricle

文章表

tag

标签表

article_tag

文章标签关系表

comment

评论表

具体的表结构和对应的实体类在接下来应用中会逐步提到。

3. 总结

完成项目搭建,从下一篇开始逐步讲解系统的功能模块。

来源:[]()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在SQL Server中为什么不建议使用Not In子查询

原文:在SQL Server中为什么不建议使用Not In子查询在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下 下面我们…

结组项目-四则运算3

团队成员:苗堃(http://www.cnblogs.com/brucekun/p/5294368.html)、罗毅(http://www.cnblogs.com/ly199553/p/5294779.html) PSP总结http://www.cnblogs.com/ly199553/p/5295545.html 本次软件工程老师提出了新任务&a…

jsp 嵌入java_关于JSP里的Java语句嵌入问题

是这样的,我用的是Intellij 导入了一个MyEclipse的包(该包已部署在服务器上,所以是没有大错误的)。然后在一个jsp文件出现了个问题:莫名奇妙地println变成了红色,执行的时候就直接抛出异常了。今天刚接触JavaWeb不太懂,到底是怎么…

【three.js】库

2019独角兽企业重金招聘Python工程师标准>>> three.js 一个轻量级的webgl库,但是十分强大。 下载地址https://github.com/mrdoob/three.js OrbitControls.js 控制视口的平移、缩放、旋转。 GridHelper.js 生成视口的网格。 转载于:https://my.oschina.…

域名发散--前端优化(三)

话说天下大势,分久必合,合久必分其实域名也是一样,分分合合, 不管是域名收敛还是域名发散,都有着自己独特的应用场景。目前, 在webs top 30,000 URLS 里面, 平均每个域名承担了50个资源的请求,所…

java就_GitHub - IammyselfYBX/This_is_how_Java_should_be_learned: 《Java就应该这样学》

Java就该这么学说明这里使用 centos7 的openjdk,不是Oracle的JDKyum search java|grep jdkyum install java-1.8.0-openjdk#set Java environmentexport JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64export CALSSPATH.:$JAVA_HOME/jre/l…

win7变成xp风格了怎么改回_XP退役了,如何把Win7变成XP风格

展开全部方法如下:【步骤62616964757a686964616fe78988e69d8331333365653265①】:在电脑桌面空白处,点击鼠标右键,子菜单选择点击“个性化”【步骤②】:直接选择“基本和高对比主题”里的“Windows经典”模式整理风格发…

org.apache.catalina.LifecycleException: Failed to

2019独角兽企业重金招聘Python工程师标准>>> 文章原创地址:org.apache.catalina.LifecycleException: Failed to start component今天来了个新同事,让他先熟悉一下我们的工程项目,从svn下载下来以后,配置完成却怎么都无…

objective-C CollectionView 加深(添加注册头部View)

2019独角兽企业重金招聘Python工程师标准>>> #pragma marc 添加Collection -(void)addConllectionView{//collection的布局方案UICollectionViewFlowLayout *collectionViewLayout[[UICollectionViewFlowLayout alloc]init];//设置位置大小以及布局方案_myCollectio…

Javascript中Base64编码解码的使用实例

Javascript为我们提供了一个简单的方法来实现字符串的Base64编码和解码,分别是window.btoa()函数和window.atob()函数。 1 var encodedStr window.btoa(“Hello world”); //字符串编码 2 var decodedStr window.atob(encodedStr); //字符串解码看下面的实例代…

mysql安装前的系统准备工作(转)

一、系统环境总结: 二、安装yum源: 1、安装磁盘yum源: 一、安装xfs文件系统:1、配置yum源:(光盘)vi /etc/yum.repos.d/yum.repo[Server]nameserverbaseurlfile:///tmp/cddir/Server/enabled1gpg…

layui常用的表单标签_Layui常用组件:表格(table)

快速使用添加删除编辑查看编辑删除layui.use([table], function () {table.render({elem: #demo,url: url//表格数据接口,toolbar: #toolbarDemo //开启头部工具栏,并为其绑定左侧模板,page:true//开启分页,loading:true//显示加载条,cols: [[{type: checkbox, fixe…

理解HTTP幂等性

2019独角兽企业重金招聘Python工程师标准>>> 理解HTTP幂等性 基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢&#xff…

控件UI性能调优 -- SizeChanged不是万能的

简介 我们在之前的“UWP控件开发——用NuGet包装自己的控件“一文中曾提到XAML的布局系统 和平时使用上的一些问题(重写Measure/Arrange还是使用SizeChanged?),这篇博文就来为大家简单地描述一下XAML布局系统的行为,并…

android 跨进程多实例播放demo

2019独角兽企业重金招聘Python工程师标准>>> 客户端进程需要实现,其中notify方法需要service 跨进程调用,通知客户端播放消息 IMediaPlayerClient.aidl package com.example.demo; import com.example.demo.ParcelableParcel; interface IM…

java 获取service_Java service层获取HttpServletRequest工具类的方法

Java service层获取HttpServletRequest工具类的方法大家都知道 能在Controller/action层获取HttpServletRequest,但是这里给大家备份的是从代码内部service层获取HttpServletRequest工具类。具体如下:package com.base.common.sessionutils;import javax…

Linux使用jstat命令查看jvm的GC情况

2019独角兽企业重金招聘Python工程师标准>>> 命令格式 jstat命令命令格式: jstat [Options] vmid [interval] [count] 参数说明: Options,选项,我们一般使用 -gcutil 查看gc情况 vmid,VM的进程号&#x…

python写一段脚本代码自动完成输入(目录下的所有)文件的数据替换(修改数据和替换数据都是输入的)【转】...

转自:http://blog.csdn.net/lixiaojie1012/article/details/23628129 初次尝试python语言,感觉用着真舒服,简单明了,库函数一调用就OK了[python] view plain copy 在CODE上查看代码片派生到我的代码片 import sys,os,os.path de…

java混合分页_坑,MySQL中 order by 与 limit 混用,分页会出现问题!

在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N。但是这种写法却隐藏着较深的使用陷阱。在排序字段有数据重复的情况下,会很容易出现…

OSG开发概览

1 OSG基础知识 OSG是Open Scene Graphic 的缩写,OSG于1997年诞生于以为滑翔机爱好者之手,Don burns 为了对滑翔机的飞行进行模拟,对openGL的库进行了封装,osg的雏形就这样诞生了,1998年Don burns 遇到了同样喜欢滑翔…