记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] 灵活的文章查找
      支持文章标题和内容的多重模糊查询
    • [ ] 更多主题
      可能尝试调用hexo解析hexo主题模板
  • 后台管理模块
    • [ ] markdown支持插入图片
    • [ ] 实时编辑markdown
  • RESTful API模块
    • [ ] 复用api
      转发前后台url到api
    • [ ] RESTful API规范
      遵守状态码,安全与幂等等规范
    • [ ] 对提交评论和文章点击量的限制
      包括提交内容判误、提交频率、一段时间同ip不增加点击量、跨域提交
  • docker支持

原文地址:https://www.cnblogs.com/tanglizi/p/10809800.html

时间: 2024-11-02 23:55:44

记Spring搭建功能完整的个人博客「Oyster」全过程[其一] 整体思路:需求、架构及技术要求的相关文章

记Spring搭建功能完整的个人博客「Oyster」全过程[其二] Idea中Maven+SpringBoot多模块项目开发的设计和各种坑(模块间依赖和打包问题)

大家好嘞,今天闲着没事干开写写博客,记录一下Maven+SpringBoot的多模块设计和遇到的坑. 多模块设计 简单说明一下截止目前的需求: 需要RESTful API:对文章.标签.分类和评论等的CRUD 要前台展示: 首页.归档.文章具体页等 后台管理:添加文章.新增标签之类 简单分析可以简单设计一个模块来组织代码,比如就叫oyster-blog. 但显然有个问题,这么设计会让代码比较混乱,比如我不能在同一个类中处理所有的请求,也不能分成三个类分别实现这三个功能. 比较好的设计是分成三个包

Java EE 学习(9):IDEA + maven + spring 搭建 web(5)- 博客文章管理

转载:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) . 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 web(1) Java EE 学习(6):IDEA + maven + spring 搭建 web(2)- 配置 Spring Java EE 学习(7):IDEA + maven + spring 搭建 web(3)- 配置数据库 Java EE 学习(8):IDEA + maven + spring 搭建 web(

HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客

HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客 VPS主机   2014年06月02日 17:20 评论» 文章目录 Debian上安装 CentOS上安装 Ubuntu上安装 装Wordpress HHvm安装小结 HHVM是一个强大的可以用于替代PHP的建站环境,出自Facebook团队,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点.实践证明HHVM可以明显地提升PHP执行速度,节省大量的服务器资源

Ubuntu 用 apache2 搭建 web 服务器 建wordpress博客

主要有5个步骤分别是: 1: 安装mysql. 2: 安装apache2 3: 安装php5 及其组件 4: 安装wordpress 第1步:安装mysql  这步非常简单.... sudo apt-get install mysql-server 输入用户名和密码..... 测试一下....就完成了 第2步: 安装apache2 sudo apt-get install apache2 安装完成 在浏览器里输入127.0.0.1就可以看到apache2的测试页 **apache2安装好后,默认

(转载)记:从百度空间搬家到博客园--写博客要写的舒服

转自http://www.cnblogs.com/syxchina/archive/2011/10/03/2198468.html 一直都有把百度空间搬家的想法,但由于百度空间我将就的用了快3年了,也写了很多文章,交了很多朋友,实在舍不得,但最近实在忍不住百度空间的限制,字数限制.无代码格式化.不支持windows live writer,每次写博客格式图片处理很是伤心,很多时候甚至不写博客,直接记录在doc文件来的方便省心!但想想平时很多只是汲取与互联网谷歌,不贡献点实在说不过去!下定决心,搬

Mac 上搭建基于 Hexo + GitHub 个人博客

环境配置 本人电脑系统:macOS Node.js 生成静态页面.安装Node.js Git 用于将本地 Hexo 内容提交到 Github.Xcode自带Git(前提:macOS已经安装了Xcode),若没有,可以参考 Hexo官网上的安装方法. 安装 Hexo 当 Node.js 和 Git 都安装好后,就可以正式安装 Hexo 了,终端执行如下命令: $ sudo npm install -g hexo 输入管理员密码(Mac 登陆密码)即可开始安装. 注: sudo:linux系统管理指

在Debian下搭建基于Apache-Php-MySQL的wordpress博客

wordpress是一个流行的博客搭建框架,为不会html,css和js的人提供了搭建博客的便捷方式.我这里是在我的笔记本上搭建了一个wordpress博客,这里把详细的搭建过程写出来. 我的系统信息如下: 具体的操作过程如下描述. 1.安装apache2服务器 其中apache2-doc是apache服务器的说明和配置文件,libapache2-mod-php5是apache的php模块库文件. 安装成功后,重启apache2服务器, 此时在浏览器地址栏里面输入http://localhost

在CentOS上搭建基于Nodejs的Ghost博客

Ghost介绍 Ghost 是基于 Node.js 构建的开源博客平台.Ghost 具有易用的书写界面和体验,博客内容默认采用Markdown 语法 书写.Ghost 的目标是取代臃肿的 Wordpress. 搭建Ghost博客系统 1.本机测试环境 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected] ~]# uname -r 3.10.0-5

github pages + Hexo + node.js 搭建属于自己的个人博客网站

 之前我写过一篇用Github实现个人主页的博客:https://www.cnblogs.com/tu-0718/p/8081288.html   后来看到某个大佬写的文章:[5分钟 0元搭建个人独立博客网站]很详细且通俗易懂,跟着步骤来就行   所以不再过多赘述,主要分享一些跟着上面步骤实际操作时需要注意的地方 注意事项 ①:出现下图提示,是让你在全局输入你的邮箱和github登录账号用户名 git config --global user.email "你的邮箱" git conf