您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

Java 后端博客系统文章系统——No1

时间:2020-07-09 18:52:19  来源:  作者:

工具

IDE为idea16

JDK环境为1.8

gradle构建,版本:2.14.1

MySQL版本为5.5.27

Tomcat版本为7.0.52

流程图绘制(xmind)

建模分析软件PowerDesigner16.5


Java 后端博客系统文章系统——No1

 

首先我们需要先了解我们这个文章系统的整个功能模块组合,也就是我们的思维导图,只有这样才能实现整体功能的架设。下面如图所示:

Java 后端博客系统文章系统——No1

 

其实在上面的系统中,我已经把前端用户的文章查阅功能排除掉的。为什么我这里会单独排掉前端的查阅呢?前端的文章查阅功能基本在后端的所有文章中已经有体现相应功能。大概功能如下:

前端文章查阅

文章列表

文章归档

文章分类

文章详情

 

Java 后端博客系统文章系统——No1

 


Java 后端博客系统文章系统——No1

 

在上面的流程图中,我们可以看到我们清楚的把业务流程描述出来了。可能很多哥们会说我们有其他不一样的方式,或者类似的方式但是实现比现在的强势,这个无可否认。但是我认为这个是别人项目中存在且我使用的很符合个人习惯的东西。好的东西要学习,不友好的东西我们需要自己改进。

首先我们访问站点的方式只有访问主页,然后才会有web应用的展示,也就是说我们网站的首页是我们web应用的总入口。

而我们主页的功能也是需要围绕我们的中心——博客来制作,这样才能达到我们建设这个后端的目的。所以首页元素需要有以下方面:

文章列表

文章归类

作者介绍

热门文章

最高评论

最近动态

联系信息(而维码)

标签导航

等···

Java 后端博客系统文章系统——No1

 


Java 后端博客系统文章系统——No1

 

为什么我们需要数据流图,我们不是为了软件工程二故意做这个数据流图。而是数据流图能清晰的表明我们这些流程中需要哪些关键的东西,能在一定程度上反应业务逻辑。所以我们做这个还是有意义。在上面我们可以看到在我们程序流转的过程中,我们需要知道具体的文章ID才能进行详情查看操作,所以我们在拿到列表的时候就需要把文章ID拿到,同时文章归档的依据信息,也需要拿到,大概需要哪些简单的东西,具体跟下面首页的json数据相关。具体的首页预想效果如下图:

Java 后端博客系统文章系统——No1

 

按照通用接口标准来说,我们首页数据需要JSON的标准数据。分析可得,我们的json格式大概如下:

Java 后端博客系统文章系统——No1

 

可能一些朋友看到这里就会迷糊了,你的json数据的实体类型怎么来的呢?其实我们一开始就提过我们的数据库是wordPress/ target=_blank class=infotextkey>WordPress的数据库,也就是数据内容是来自我的个人博客系统上面的数据库。所以我们需要看看wrodpress的博客系统上面文章表的结构和内容才能推测是表中字段及其分布各有什么意义。具体的数据库表结构如下:

Java 后端博客系统文章系统——No1

 

从上面的文章信息表中我们可以看到这一张表只是用来存储所有的文章的基本信息,但是文章的一些其他信息都是没有的,比如说:

评论

特色图片

文章归档

等···

一般来说,我们的常规思路是需要将这些信息关联在一起的,而且这个思路也是没错的。但是可能有的实现我们并没有较好的设计思想,所以我们可以简单的把数据库逆向到模型。所以闲话不多说,直接在有wrodpress环境的电脑上面链接数据库,打开wordpress数据库,选择逆向到模型。那么,数据库逆向模型如下所示:

Java 后端博客系统文章系统——No1

 

从上面的数据库模型中我们可以看出维持wordpress中心的有几张表,如下:

wp_posts 文章基础信息表

wp_postmeta 文章扩展数据表

wp_comments 评论基本表

wp_commentmeta 评论扩展表

wp_links 链接表

wp_options 设置信息表

wp_users 用户信息表

wp_usermeta 用户信息扩展表

为什么我说上面这几张表是核心表呢?首先我们可以看到这几张表都是存储了博客系统的一些基本的东西。接着我们可以看到这些各个表中一些关联的表都是有彼此的键对应其他表的主键,所以看到这里大家可能也就心里有数。

所以上面我们的json信息中的实体类型该怎么设定也就是很明显的,必须对应数据库字段嘛。既然都这样了,那我们是不是也可以进一步猜想出其他的json内容呢?

Java 后端博客系统文章系统——No1

 

文章按照日期归档相信很多人都看到过,大概样子就是一个下拉列表中显示年月日后面加上数量,大概样子如下

请选择日期 ↓

所有

2016年11月12日(2)

2016年11月15日(1)

2016年10月28日(3)

我们要把这样的效果做出来,其实可以直接把文章信息传递给前台让前端完成。但是数据量过多的时候,网络传输也就相对吃力,所以我们还是直接后端处理,将网络传输的数据最精简。

那么我们简单的首页集合的数据应该如下所示了:

Java 后端博客系统文章系统——No1

 

这里应该有朋友可能会问,为啥你的date(根据日期归档)的json数据这么奇怪呢?

其实我们最直接的可以看到,在上面的日期归档的json中,日期可以很直观的看出来,同时idList中把文章ID也是展示出来的,所以我们根据ID和日期都还是可以互相参考的,同时ID的数量可以让我们明白每个日期有多少篇文章。

既然我们在上面把基本的首页框架数据归类,写出的json接口,同时通过逆向开发的思路等把项目我们需要使用的一些模型图完成了,这样接下来就是具体编码的事情。 具体的编码问题,且听下回分解。

Java 后端博客系统文章系统——No1

 

核心算法:SHA-256

步骤:

注册用户

客户端进行16位MD5小写加密

生成随机的salt

将密码和salt进行SHA-256加密

数据库存入用户信息和对应的salt


这一期,我们把文章系统一些做了基础的分析,下一期我们需要完成wordpress数据库内容分析和文章系统模块开发,和文章的撰写相关的东西。项目开发中的一些基本思想,但是可能我们最终目的是倚赖wordpress的博客。所以在实际开发中,我们可以参考别人的完成并加以列用。



Tags:Java   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
面向对象的特征之一封装 面向对象的特征之二继承 方法重写(override/overWrite) 方法的重载(overload)和重写(override)的区别: 面向对象特征之三:多态 Instanceof关键字...【详细内容】
2021-12-28  Tags: Java  点击:(2)  评论:(0)  加入收藏
一、Redis使用过程中一些小的注意点1、不要把Redis当成数据库来使用二、Arrays.asList常见失误需求:把数组转成list集合去处理。方法:Arrays.asList 或者 Java8的stream流式处...【详细内容】
2021-12-27  Tags: Java  点击:(3)  评论:(0)  加入收藏
文章目录 如何理解面向对象编程? JDK 和 JRE 有什么区别? 如何理解Java中封装,继承、多态特性? 如何理解Java中的字节码对象? 你是如何理解Java中的泛型的? 说说泛型应用...【详细内容】
2021-12-24  Tags: Java  点击:(5)  评论:(0)  加入收藏
1、通过条件判断给变量赋值布尔值的正确姿势// badif (a === 'a') { b = true} else { b = false}// goodb = a === 'a'2、在if中判断数组长度不为零...【详细内容】
2021-12-24  Tags: Java  点击:(6)  评论:(0)  加入收藏
Java与Lua相互调用案例比较少,因此项目使用需要做详细的性能测试,本内容只做粗略测试。目前已完成初版Lua-Java调用框架开发,后期有时间准备把框架进行抽象,并开源出来,感兴趣的...【详细内容】
2021-12-23  Tags: Java  点击:(11)  评论:(0)  加入收藏
传统游戏项目一般使用TCP协议进行通信,得益于它的稳定和可靠,不过在网络不稳定的情况下,会出现丢包严重。不过近期有不少基于UDP的应用层协议,声称对UDP的不可靠进行了改造,这意...【详细内容】
2021-12-23  Tags: Java  点击:(12)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  Tags: Java  点击:(12)  评论:(0)  加入收藏
Java从版本5开始,在 java.util.concurrent.locks包内给我们提供了除了synchronized关键字以外的几个新的锁功能的实现,ReentrantLock就是其中的一个。但是这并不意味着我们可...【详细内容】
2021-12-17  Tags: Java  点击:(11)  评论:(0)  加入收藏
一、概述final是Java关键字中最常见之一,表示“最终的,不可更改”之意,在Java中也正是这个意思。有final修饰的内容,就会变得与众不同,它们会变成终极存在,其内容成为固定的存在。...【详细内容】
2021-12-15  Tags: Java  点击:(17)  评论:(0)  加入收藏
1、问题描述关于java中的日志管理logback,去年写过关于logback介绍的文章,这次项目中又优化了下,记录下,希望能帮到需要的朋友。2、解决方案这次其实是碰到了一个问题,一般的情况...【详细内容】
2021-12-15  Tags: Java  点击:(19)  评论:(0)  加入收藏
▌简易百科推荐
面向对象的特征之一封装 面向对象的特征之二继承 方法重写(override/overWrite) 方法的重载(overload)和重写(override)的区别: 面向对象特征之三:多态 Instanceof关键字...【详细内容】
2021-12-28  顶顶架构师    Tags:面向对象   点击:(2)  评论:(0)  加入收藏
一、Redis使用过程中一些小的注意点1、不要把Redis当成数据库来使用二、Arrays.asList常见失误需求:把数组转成list集合去处理。方法:Arrays.asList 或者 Java8的stream流式处...【详细内容】
2021-12-27  CF07    Tags:Java   点击:(3)  评论:(0)  加入收藏
文章目录 如何理解面向对象编程? JDK 和 JRE 有什么区别? 如何理解Java中封装,继承、多态特性? 如何理解Java中的字节码对象? 你是如何理解Java中的泛型的? 说说泛型应用...【详细内容】
2021-12-24  Java架构师之路    Tags:JAVA   点击:(5)  评论:(0)  加入收藏
大家好!我是老码农,一个喜欢技术、爱分享的同学,从今天开始和大家持续分享JVM调优方面的经验。JVM调优是个大话题,涉及的知识点很庞大 Java内存模型 垃圾回收机制 各种工具使用 ...【详细内容】
2021-12-23  小码匠和老码农    Tags:JVM调优   点击:(11)  评论:(0)  加入收藏
前言JDBC访问Postgresql的jsonb类型字段当然可以使用Postgresql jdbc驱动中提供的PGobject,但是这样在需要兼容多种数据库的系统开发中显得不那么通用,需要特殊处理。本文介绍...【详细内容】
2021-12-23  dingle    Tags:JDBC   点击:(13)  评论:(0)  加入收藏
Java与Lua相互调用案例比较少,因此项目使用需要做详细的性能测试,本内容只做粗略测试。目前已完成初版Lua-Java调用框架开发,后期有时间准备把框架进行抽象,并开源出来,感兴趣的...【详细内容】
2021-12-23  JAVA小白    Tags:Java   点击:(11)  评论:(0)  加入收藏
Java从版本5开始,在 java.util.concurrent.locks包内给我们提供了除了synchronized关键字以外的几个新的锁功能的实现,ReentrantLock就是其中的一个。但是这并不意味着我们可...【详细内容】
2021-12-17  小西学JAVA    Tags:JAVA并发   点击:(11)  评论:(0)  加入收藏
一、概述final是Java关键字中最常见之一,表示“最终的,不可更改”之意,在Java中也正是这个意思。有final修饰的内容,就会变得与众不同,它们会变成终极存在,其内容成为固定的存在。...【详细内容】
2021-12-15  唯一浩哥    Tags:Java基础   点击:(17)  评论:(0)  加入收藏
1、问题描述关于java中的日志管理logback,去年写过关于logback介绍的文章,这次项目中又优化了下,记录下,希望能帮到需要的朋友。2、解决方案这次其实是碰到了一个问题,一般的情况...【详细内容】
2021-12-15  软件老王    Tags:logback   点击:(19)  评论:(0)  加入收藏
本篇文章我们以AtomicInteger为例子,主要讲解下CAS(Compare And Swap)功能是如何在AtomicInteger中使用的,以及提供CAS功能的Unsafe对象。我们先从一个例子开始吧。假设现在我们...【详细内容】
2021-12-14  小西学JAVA    Tags:JAVA   点击:(21)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条