封面图片

博客系统技术栈介绍

本篇文章将来介绍一下博客系统(当前版本)的各种技术栈实现,按技能方向整理详细如下。 开发环境 前端技能 后端技能...

文章分类:系统实现 本站 v2.0(当前)

本站博客实现
封面图片

博客系统访问量统计

1.基本介绍 本站的访问数量分为两种,分别是博客文章的访问次数和本站所有页面的访问次数统计,这两个统计实现的功能沿用了历史上的本站v1.0的设计实现,所以当前的v2.0版本也有同样实现。文章的访问次数也是为了精确访问次数,在首次进入页面时发送Ajax请求获取当前文章的访问次数,并且将访问量+1,除了将获取的访问量结果显示在页面,也同样将数据存储在前端sessionStore范围内,达到一次访问只记录一个访问次数(防止手工刷新页面增加访问数量);所有页面的访问次数统计则是利用过滤器来拦截所有URL地址,从中筛选出需要记录的地址,作为访问量进而存储。 在本站v2.0版本上线之初只实现了文章数量的访问统计,而不甘于日常的无所事事,随逐渐增加了全站的访问量(仅限于前端项目,后端的具体访问量没有记录,主要记录的操作日志),所以本站的全站访问量统计主要是使用Filter过滤器实现,参考两种思路: (1...

文章分类:系统实现 本站 v2.0(当前)

博客系统接口交互实现

如果有关注到本站的建站设计就能知晓本站区分前端web项目和后端admin项目,前端与后端的数据交互有多种设计实现,接口交互的实现常见的有JDK的HttpUrlConnection、Apache的HttpClient、OkHttp、Spring RestTemplate、Ribbon、Fegin等多种实现,另有基于跨域直接访问的Proxy Servlet、Nginx的方式,也是终究考虑本站作为较小型站点和运维成本的考虑,最终选择了使用Gitee上的开源项目Forest组件,作者公子骏,非常优秀的开发者(架构师),我辈学习之楷模,Gitee项目地址为“https://gitee.com/dromara/forest”,项目介绍的官方网站为“http://forest.dtflyx.com/”,如果是小型项目或者是个人项目整合应用还是不错的选择,当然了仅供参考,本次将所涉及到的Forest Ap...

文章分类:系统实现 本站 v2.0(当前)

本站博客实现

博客系统用户会话管理

背景介绍 用户会话管理的实现可以有Http Session、Spring Session和Jwt等多种方式,考虑到本站的前端与后端隶属两个项目,需要考虑用户会话的单点有效性以及应用的简单等特点,最终使用了Spring Session,再结合有限的云务器内存,最终使用了基于数据库表的JDBC存储的方式,也算是将Spring Session 项目的应用有了更多更深入的理解,借着博客系统2.0版本功能的实现介绍,特来补充一下Spring Session的实现。 前面在Spring Session的案例中基本的使用和进阶进行了具体的实践,仅仅只是demo级别的,实际更全面的应用应该算是在本站2.0的实现过程中得到了更科学的应用,也遇到了各种各样的问题,最终一一有效的解决,也特将此部分的知识进行整理。如下几种场景皆是个人遇到的问题后的解决总结,参考如下所示。 问题列表 1)过滤器默认拦截/*,设置过...

文章分类:系统实现 本站 v2.0(当前)

本站博客实现

博客系统图片加水印功能实现

基本介绍 本站系统1.0版本并未对图片增加水印,在全面建站2.0时越发感觉增加图片水印也算是站点的一个特色功能,于是就考虑增加此功能的实现,最终考虑的是水印内容为本站的站点地址(常用的水印可以是基于图片的水印或文字的,本站以文字为主)。关于图片的水印本站实现的功能点主要有以下几点: 1)对于常见格式增加水印内容为“http://www.chendd.cn”的文本; 2)水印文本默认显示在正中间的位置,也可以按需要放置在左上,中上,右上,左中,右中,左下,中下,右下等8个位置; 3)若图片宽度较小时,缩放文本为8px显示水印; 4)若图片为长条图时,高度大于600时,每隔300px显示一次水印,一共可以显示为多个水印; 5)图片格式支持JPG/PNG/BMP/GIF等多种,其中非GIF的使用Google开源的thumbnailator组件,GIF动画图片的水印增加则是使用了非开源的gif4j...

文章分类:系统实现 本站 v2.0(当前)

图片水印本站博客实现

博客系统数据库参数注入功能实现

本站后台管理功能中提供了“参数管理”的功能,主要是将一些功能上的配置参数存储至数据库表中,减少在application.yaml中的参数配置,同时提供页面在线管理,支持参数修改后的立即生效。(此功能类似参数配置中心,但仅是博客站点的一个小小功能)。主要是提供数据库表来进行参数配置,多以功能模块的内部参数为主,同时在服务器启动时读取该表中的所有参数,将其注入至对应功能中去,详细介绍参考如下。 实现原理 注入机制 服务器启动完毕,读取参数配置表的数据以及所有的参数配置类组件,通过对应注解和调用setter属性方法进行参数设置,利用Spring Bean单例的特性实现对参数数据的内存存储 参数读取 通过Aop的方式读取特殊的参数配置类中的所有get开头的属性方法,从内存中读取最新数据对象,将参数值获取并返回 使用方式 通过参数对象的形式,注入其属性值,并作为Spring Bean对象的形式对外注...

文章分类:系统实现 本站 v2.0(当前)

本站博客实现

博客系统用户操作日志记录

关于全局的操作日志记录的功能本站文章实现过的多种不同版本,单从功能实现层面来讲《新的Spring Aop实现全局日志记录功能》这一篇的实现比较新颖和科学,于是本站建站初期将此功能完善后集成至功能中。过多的理论在前面的几篇文章或多或少的都已经说过,本次以具体实现的形式来展示实现的过程以及细节,参考如下。 定义@Log Log注解定义了操作日志的功能范围,限定标记在方法层,建议的方式是记录在service层面,从@Log注解的形式可以看到日志记录时的功能知识点,主要考虑的有功能名称name、功能描述description、日志参数范围scope、排除参数exclude。 name表示操作日志的功能模块名称,默认为空字符串,系统的默认处理逻辑是获取service类的名称加上方法名称,中间使用小数点分割; description表示操作日志的功能描述,支持纯文本、方法参数、方法返回值等混合编写; ...

文章分类:系统实现 本站 v2.0(当前)

本站博客实现 操作日志

博客系统ueditor之(2)个性化修改

本篇文章重点列举关于ueditor的个性化修改或实现的功能点,供参考。 全屏显示 默认的ueditor全屏为整个页面的全屏,在本项目中使用了一堆的Bootstrap主题的css样式,再加上使用到了iframe框架,或多或少的全屏有这样或那样的兼容性问题,索性直接给换了吧,换成将ueditor整合组件来全屏,其实就是使用了fullscreen插件,给ueditor的全屏按钮绑定了调用fullscreen插件的事件即可,不过扯淡的是当点击该按钮全屏后,若不是继续点击该按钮的取消全屏,使用Esc的取消全屏,则页面样式还错位了,不过,懒得解决,个人能接受。 vareditor=null; $(function(){ varwidth=$(window).width()-26;//左右两个15px varheight=$(window).height()-130;//上下两个60px,ue的工具栏,...

文章分类:系统实现 本站 v2.0(当前)

本站博客实现在线编辑器

博客系统ueditor之(1)生成ueditor.all.min

背景介绍 本站1.0的文章编辑就使用的ueditor,整体使用上感觉功能比较多(尽管使用的时候也就用那一小部分)该编辑器功能还是比较强大的,用的顺手也满足我的一些常规应用场景,不过上次集成(至少是8年前的事情了)它的时候使用的Spring MVC项目环境,新版博客建站之初特地使用Spring Boot环境来分模块的集成了ueditor组件,无论今后是否还会再次集成它,至少本次集成的是比较纯净完美的实现,可供直接拿走不谢。 也许ueditor是比较稳定吧,看了一下Github上的源码提交最后一次的提交也是4 years ago,Latest releases版本为v1.4.3.3 on 10 Aug 2016,笔者最后一次下载它们则是在2019年,所以当前使用的版本即为最新版本,至于Spring MVC的历史版本就让它永远的成为历史吧,接下来所有的内容均为当前的v1.4.3.3版本。 ued...

文章分类:系统实现 本站 v2.0(当前)

本站博客实现在线编辑器
封面图片

博客系统前端Bootstrap主题UBold介绍

背景介绍 有人说Bootstrap这种东西还有人用?作为不专业的前端大手我觉得用起来还不错啊,模板资源丰富,样式效果多彩,官网更新热门。本次博客系统2.0重造的前端也算是最大的调整(1.0版本是个人纯手写css和切图实现的跨平台,虽然页面样式可能不专业/不科学,但是在后端人员中亦是莫测高深的存在,允许我逮住机会秀一下),最主要还是需要去适配搜索引擎对网页内容数据的抓取以及页面展示效果和平台兼容性,所以选Bootstrap就对了。对于Angular这种专业的前端面向对象语言来说并不存在专业的掌握,但是想着它们这类的面向对象的编码模式如何去渲染出适合搜索引擎爬取的html内容呢;vue的话仍然没有去掌握,主要还是兴趣不及吧,它最终渲染出来的页面内容也不是一种纯html的网页,给我的认知就是它也不是很适合去兼容搜索引擎爬取的网页。 说到Bootstrap刚才(2022年05月05日)看了一下官网...

文章分类:系统实现 本站 v2.0(当前)

本站博客实现
封面图片

博客系统各模块结构介绍

基本介绍 本篇文章将来介绍一下博客系统(当前版本)的模块间逻辑结构,功能划分等细节实现,参考如下图所示: 项目名称起名为chendd-blog,寓意以作者名字定义的blog系统,总共细分了11个功能模块,从拆分主体上分为两类,分别是可以用于其它项目中独立应用的公共模块和专门服务于blog项目的功能模块。所谓独立的公共模块作者的初衷是旨在构建独立的公共功能,不限制于具体某一个项目中应用,而是可以服务于多个项目中去应用,所以从模块的总体层面来讲区分为独立模块与继承parent的子功能模块。 独立模块 core core作为核心模块的存在,从设计宗旨上来讲它仅依赖一些开源库(如Apache Commons、Google Guava、servlet-api、fastjson等,同时该模块也提供一些常见的工具类(如:DateUtil、BigDemicalUtil、IpUtil等)以及一些个人认为会被...

文章分类:系统实现 本站 v2.0(当前)

本站信息

 运营时间: 天

 用户数量: 人

 文章数量: 篇

 评论数量: 条

 点赞个数: 个

 最后更新:

标签云