记Spring搭建功能完整的个人博客「Oyster」全过程[其一] 整体思路:需求、架构及技术要求
一两个星期前正在了解Linux内核,看得有点累,突然想趁着五一放假写个博客学学spring。
由于没有在一开始下定决心写这个博客系统,所以我又没记录一开始的分析过程。这都是写了一个星期之后的思路了。
写这个随笔就仅当作再次理清思路吧。
项目地址:https://github.com/TangliziGit/Oyster
开发目的
目的很简单,就是为了下面这几点:
- 了解和实践web开发全过程,主要是架构设计和前后端实现
- 一边写一边学,主要学设计规范、代码结构、具体框架,还有git操作
- 方便之后写博客(吐槽一下cnblog的markdown支持是真不行啊)
- 方便装b,刷github提交量
需求
我们直接对具体页面迭代的需求分析:
第一次分析:
- 首页
+ 显示部分文章,支持分页
+ 显示文章信息:名字、创建时间、分类和标签
- 文章页
+ 显示标签、分类
+ 具体文章,分页显示评论
- 档案(Archives)
+ 按月份显示文章,支持分页,详细信息同首页
第二次分析:
前台:
- 标签页 & 分类页
+ 显示每个标签,及对应前六篇文章
- 搜索页
例:
[Dxx](https://fuzhouxxdong.github.io/hexo-theme-dxx/)
[Hipaper](https://itimetraveler.github.io/hexo-theme-hipaper/)
[Minos](https://blog.zhangruipeng.me/hexo-theme-minos/)
架构
多模块开发:
- oyster-common
访问数据库、提供公共的功能类 - oyster-api
提供RESTful API - oyster-front
前台展示模块 - oyster-runner
用于启动所有模块,无实际作用
开发架构图

技术要求
总结一下使用的框架
- Thymeleaf
- Spring MVC
- Spring Boot
- Spring Data JPA (可能与MyBatis混用)
具体开发细节
- 公共模块
- [x] AbstractQuery查询
通过注解封装一部分JPA动态查询功能,提供方便使用的多重查询
- [x] AbstractQuery查询
- 前台页面模块
- [x] 灵活的文章查找
支持文章标题和内容的多重模糊查询 - [ ] 更多主题
可能尝试调用hexo解析hexo主题模板
- [x] 灵活的文章查找
- 后台管理模块
- [ ] markdown支持插入图片
- [ ] 实时编辑markdown
- RESTful API模块
- [ ] 复用api
转发前后台url到api - [ ] RESTful API规范
遵守状态码,安全与幂等等规范 - [ ] 对提交评论和文章点击量的限制
包括提交内容判误、提交频率、一段时间同ip不增加点击量、跨域提交
- [ ] 复用api
- docker支持
记Spring搭建功能完整的个人博客「Oyster」全过程[其一] 整体思路:需求、架构及技术要求的更多相关文章
- 记Spring搭建功能完整的个人博客「Oyster」全过程[其二] Idea中Maven+SpringBoot多模块项目开发的设计和各种坑(模块间依赖和打包问题)
大家好嘞,今天闲着没事干开写写博客,记录一下Maven+SpringBoot的多模块设计和遇到的坑. 多模块设计 简单说明一下截止目前的需求: 需要RESTful API:对文章.标签.分类和评论等的 ...
- Java EE 学习(9):IDEA + maven + spring 搭建 web(5)- 博客文章管理
转载:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) . 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 web(1) Jav ...
- LNMP环境搭建之php安装,wordpress博客搭建
LNMP环境搭建之php安装,wordpress博客搭建 一.介绍: 1.什么是CGI CGI全称是"通用网关接口"(Common Gateway Interface),HTTP服 ...
- 搭建自己的 github.io 博客
1.前言 github.io 是基于 Github 的 repo 管理,这意味着咱们对其是有绝对的控制,这个跟放在第三方的平台比,可控性要好太多. 使用 github pages 服务搭建博客的好处有 ...
- 搭建minima主题的github博客网站
layout: post title: "搭建minima主题的github博客网站" date: 2019-04-20 19:20:20 +0800 --- 作者:吴甜甜 个人博 ...
- HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客
HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客 VPS主机 2014年06月02日 17:20 评论» 文章目录 Debian上安装 Ce ...
- 初学者入门:使用WordPress搭建一个专属自己的博客
体验简介 阿里云云起实验室提供相关实验资源,点击前往 场景将提供一台基础环境为CentOS 的ECS(云服务器)实例,这台服务器上已经内置LAMP环境.我们将会在这台服务器上安装 WordPress ...
- Mac 上搭建基于 Hexo + GitHub 个人博客
环境配置 本人电脑系统:macOS Node.js 生成静态页面.安装Node.js Git 用于将本地 Hexo 内容提交到 Github.Xcode自带Git(前提:macOS已经安装了Xcode ...
- python drf+xadmin+react+dva+react-native+sentry+nginx 搭建前后端分离的博客完整平台
前言: 经过差不多半年的开发,搭建从前端到服务器,实现了前后端分离的一个集PC端.移动端的多端应用,实属不易,今天得空,好好写篇文章,记录这些天的成果.同时也做个分享. 演示网站地址: http:// ...
随机推荐
- 南洋理工大学 ACM 在线评测系统 矩形嵌套
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...
- HDU 3934
/*这是用的有旋转卡壳的思想. 首先确定i,j,对k进行循环,知道找到第一个k使得cross(i,j,k)>cross(i,j,k+1),如果k==i进入下一次循环. 对j,k进行旋转,每次循环 ...
- [Cypress] Get started with Cypress
Adding Cypress to a project is a simple npm install away. We won’t need any global dependencies beyo ...
- Python - 检測字符串之间的包括
检測字符串之间的包括 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27048955 Python中, 能够检測字符串之间的包括问 ...
- session 的工作原理
session.cookie_domain session.cookie_path session.name session.save_path session.use_cokies session_ ...
- androidstudio集成ijkplayer教程
介绍 ijkplayer是一款非常火的开源视频播放器,android和IOS通用.关于怎么编译怎么导入android Studio中自己的项目,其中坑很多,本篇记录下自己的操作记录.ijkplay ...
- 怎样在Android.mk上加宏定义【转】
本文转载自:http://blog.csdn.net/ttxgz/article/details/7591282 很简单, LOCAL_CFLAGS += -DWHATEVERDEFINE 就可以了
- 【POJ 1084】 Square Destroyer
[题目链接] http://poj.org/problem?id=1084 [算法] 迭代加深 [代码] #include <algorithm> #include <bitset& ...
- BZOJ 4262 线段树+期望
思路: 把询问离线下来,查询max和查询min相似,现在只考虑查询max 令sum[l,r,x]表示l到r内的数为左端点,x为右端点的区间询问的答案 那么询问就是sun[l1,r1,r2]-sum[l ...
- 修改Myeclipse中项目在tomcat上发布的名称
1.从网上找的,但是没有用 2.直接修改工作空间中的文件