技术选型和整合开发环境 1.技术选型 博客网站是基于SpringBoot整合其它模块而开发的,那么每个模块选择的技术如下: SpringBoot版本选择目前较新的2.1.1.RELEASE版本 持久化框架选择Mybatis 页面模板引擎选择Freemarker 前台框架选择Bootstrap 后台框架选择AdminLTE 数据库选择Mysql 数据库版本管理选择Flyway 技术选型概览图,如下: 2.代码分包 首先确定本工程为sw-blog(即:守望博客),基础包名为: com.swnote…
在上一章节中<技术选型和整合开发环境>,确定了开发的技术,但是如果直接这样用的话,可能开发效率会不高,为了提高开发的效率,这里再整合lombok和mybatis-plus两个组件. 1.lombok 以前在Github上看到过lombok,但是也没有进一步了解它的作用.前几天用了一下,感觉代码清爽多了,确时觉得利用lombok可以简化代码提高开发效率的. lombok的官网为https://projectlombok.org/,官网上对它介绍如下: Project Lombok is a ja…
要确定一个系统的需求,首先需要明确该系统的用户有哪些,然后针对每一类用户,确定其需求.对于博客网站来说,用户有3大类,分别是: 作者,也即是注册用户 游客,也即非注册用户 管理员,网站维护人员 那么从这3大类用户的角度分析,来确定博客网站的需求. 1.作者需求 作者是博客网站中最重要的用户,是博客网站内容的直接贡献者,那么从作者的角度来说,需求有: 注册.登录.退出 这是作者进入与离开网站必不可少的功能,同时管理员可以设置是否需要激活账号的功能,如果开启了账号激活功能,那么作者注册成功后,会收到…
守望博客是支持创建专栏的功能,即可以将一系列相关的文章归档到专栏中,方便用户管理和查阅文章.这里主要讲解专栏的创建.修改和删除功能,至于专栏还涉及其它的功能,例如关注专栏等后续会穿插着介绍. 1.创建专栏 接收和处理专栏相关功能的操作的方法会放在GroupController类中,首先创建专栏的页面为: 这里有两个地方需要特别说明: 第一这个分类数据,此处分类数据正是本博客网站的分类数据,这个分类数据是系统初始化时加入的,这个初始化的功能后续会加入,目前此处就是提前将数据先写入到数据库中,例如本…
上传模块在web开发中是很常见的功能也是很重要的功能,在web应用中需要上传的可以是图片.pdf.压缩包等其它类型的文件,同时对于图片可能需要回显,对于其它文件要能够支持下载等.在守望博客系统中对于上传模块进行统一管理,同时对于上传不同的类型文件,留有自定义实现机制的接口,也即可扩展. 基于上传模块机制,就可以实现修改头像功能了.同时顺带将修改密码的功能也一起实现,这个修改密码的功能相对就很简单了. 1.可扩展上传模块 统一上传模块的体现就是上传所有类型的文件,都是调用统一的一个接口,即上传接口…
发布文章功能里面最重要的就是需要集成富文本编辑器,目前富文本编辑器有很多,例如ueditor,CKEditor.editor.md等.这里守望博客里面是集成的editor.md,因为editor.md是markdown格式,目前markdown由于简洁好用,在各种云笔记.github等中得到了广泛使用. 1.集成editor.md editor.md是在github上开源,开源地址为:https://github.com/pandao/editor.md,下载其发布的最新版本,即: 解压后,将相…
由于守望博客系统中支持由用户自己设置个人主页的URL的后半段,所以必须要用户设置该标识的功能,而且是用户注册登录之后自动弹出的页面,如果用户没有设置该标识,其它的操作是不能够操作的,同时要求主页标识只能设置一次. 用户注册时只是填写了简单的登录信息,所以用户登录后,可以设置个人详细的信息,也即修改个人信息功能. 1.设置主页标识功能 由于在用户没有设置主页标识时,只要用户一登录就会自动跳转到设置主页标识页面,同时如果没有设置该标识,其它的操作是不能操作的,所以有一个拦截器来实现该功能,即:Log…
文章详情页面是博客系统中最为重要的页面,登录用户与游客都可以浏览文章详情页面,只不过只有登录用户才能进行其它的一些操作,比如评论.点赞和收藏等等. 本次的开发任务只是将文章详情页面展示出来,至于一些收藏.点赞.评论以及统计相关的功能后续慢慢加上. 1.后台核心代码 加载出文章的详情页面的核心代码如下: /** * 加载出文章详情页面 * * @param articleId * @param model * @param session * @return */ @RequestMapping(…
对于程序中一些字典信息.配置信息应该在程序启动时加载到缓存中,用时先到缓存中取,如果没有命中,再到数据库中获取同时放到缓存中,这样做可以减轻数据库层的压力.目前暂时先整合ehcache缓存,同时预留了集成redis和memcached的接口. 先开发两个最基本的功能,就是注册和登录,对于页面几乎就是直接用bootstrap的风格,目前没有过多的设计. 1.整合ehcache 在spring boot中整合ehcache还是很方便的,首先添加依赖: <dependency> <groupI…
显示文章列表一般都是采用分页显示,比如每页10篇文章显示.这样就不用每次就将所有的文章查询出来,而且当文章数量特别多的时候,如果一次性查询出来很容易出现OOM异常. 后台的分页插件采用的是mybatis-plus自带的,前端显示时利用boostrap的风格显示. 1.开启分页插件 对于mybatis-plus框架,开启分页插件是很简单的,只需要加一个配置类,即: /** * Mybatis Plus分页配置类 * * @author lzj * @since 1.0 * @date [2019-…