【程序员节特别推送】搭建一个与技术无关的博客网站(Java后台)

news/2024/5/20 2:06:31/文章来源:https://chenxiao.blog.csdn.net/article/details/102691492

文章目录

  • 沉晓's Blog
    • 一、博客概述
    • 二、需求与功能
    • 三、开发介绍
    • 四、关于部署
    • 五、关于项目本身
    • 六、我与CSDN

沉晓’s Blog

一、博客概述

? 项目背景

我一直追求着一种纯粹,写技术博客,就好好地写,心无旁骛。

我目前唯一写作的平台就是CSDN,身边也有一部分人写了一篇文章在各个平台都有发表,我不喜欢这样,我觉得有复制粘贴的功夫,不如多花点时间打磨文章。

同样。我也不喜欢技术博文中掺杂过多的杂质,我讨厌营销号的文章,也讨厌发表大量与技术无关的文章。

于是因为这种状况,很长的一段日子里,我一直都缺失存放原始的感情、梦想、挣扎、无奈、和希望、和爱的空间。所以有了这个博客网站,它能陪我终老吗,不能吧。可能有一天,我写不动了,或许它就自然消散了。但我还是会希望,永远有一个属于自己的角落。在那个世界里,不逃荒不颠沛。

我希望在那里记录一些不经意间收获的“温暖”、可以写日记记录每一段故事、每一折心情、每一个句读,生活中的小事,这就是为什么要建立一个博客网站的意义。

? 博客地址:传送门

? 博客演示

(1)首先是web端

博客首页:

首页含有博文展示、公告(计划)展示、博文推荐、黑板报(展示博文类别和标签)等
在这里插入图片描述
有一个天气的小图标,鼠标放上去后,会展示今天,明天和后天的天气信息,IP自动定位。
在这里插入图片描述
除此之外还有留言板和音乐盒,这两部分有很大的塑造空间
在这里插入图片描述
在这里插入图片描述
博文页面

映入眼前的首先是首图和大标题
在这里插入图片描述
代码高亮,且字体含美化
在这里插入图片描述
右下角有三个小功能

分别是目录层级、翻译、扫码阅读(移动端阅读)
在这里插入图片描述
移动端扫码呈现的结果
在这里插入图片描述
评论与赞赏

在这里插入图片描述
分类页面

点击不同的分类 会呈现相关的博文
在这里插入图片描述

标签页面

点击不同的标签 会呈现相关的博文
在这里插入图片描述
在这里插入图片描述
归档页面

以时间轨迹的形式记录自己写博文的过程

在这里插入图片描述
关于我 与 关于本站页面 都是以博文的形式呈现出来的
在这里插入图片描述
在这里插入图片描述

友链页面

可以添加喜欢的网站,崇拜的大佬以及志同道合的好友的网站

在这里插入图片描述
后台登录页面

在这里插入图片描述

在这里插入图片描述

登录成功页面

在这里插入图片描述
博文界面

可以通过关键字、分类、是否为推荐博文条件定位查找博文。
在这里插入图片描述
博文写作为Markdown形式
在这里插入图片描述

分类,标签,公告以及友链都是增删改查的形式,界面一样,功能相似。

个人界面

个人界面需要权限的验证,这里为邮件的发送

在这里插入图片描述
在这里插入图片描述
邮箱大师接收的邮件
在这里插入图片描述
之后进入个人页面。

这就演示完了,功能比较简单。

(2)下面看看移动端

这里不做过多的区分

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

? 技术选型

前端UI框架 : semantic UI

前端JS框架 :JQuery

前端图标库:Font Awesome

Markdown 编辑器:Editor. md

相关插件:

  • 和风天气插件
  • 内容排版 typo
  • 代码高亮 prism
  • 动画 animate
  • 目录生成 Tobot
  • 二维码生成qrcode.js
  • 滚动侦测 waypoints
  • 平滑滚动 jquery.scrollTo

后端数据库框架:SpringDataJpa

后端服务框架:Springboot

后端模板引擎:thymeleaf

包管理工具:Maven

关系型数据库:Mysql

数据库连接池:Druid

非关系型数据库:Redis

邮件发送工具:Java Mail

后端日志:slf4j + logback

除此之外还有Markdown转HTML工具,IP处理工具,Jsoup,Httpclient,加密解密工具类等

IDEA插件有lombok等

JDK版本使用的是8 ,开发工具为Intellij IDEA

虽然列举了一大推,其实都是一些工具,会用即可, 除此之外,整体的业务逻辑也是非常简单,增删改查占据主要部分, 为了方便大家,更快更好入手这个项目,提供了请求与响应的交互文档,后面会说。

在这里插入图片描述

前端部分主要使用了SemanticUI 官网为: 传送门

Semantic UI中文网站:传送门

插件集成相关

介绍名称获取地址
内容排版typo.csshttps://github.com/sofish/typo.css
动画animate.csshttps://daneden.github.io/animate.css/
代码高亮prismhttps://github.com/PrismJS/prism
目录生成Tocbothttps://tscanlin.github.io/tocbot/
滚动侦测waypointshttp://imakewebthings.com/waypoints
平滑滚动jquert.scrollTohttps://github.com/flesler/jquery.scrollTo
二维码生成qrcode.jshttps://davidshimjs.github.io/qrcodejs/
编辑器MarkDownhttps://pandao.github.io/editor.md

下面说明关于博客的详细信息,如果整体符合你的预期,最后部分会有部署启动的演示。

二、需求与功能

需求就没必要说了叭,功能方面,大家有了大致的印象,这里再进行展示一下:
在这里插入图片描述

整个博客网站,就只有两种角色。一个是普通游客,一个是管理员,每种角色的权限非常容易区分。

三、开发介绍

后端逻辑是非常简单的,就是单纯的增删改查,因为注重美观的元素,整个重心都偏重在了前端的框架上。

整个后端的架构思想采用了传统的MVC

数据源 --> 持久层(Dao) --> 业务逻辑层(Service) --> 请求处理层(Controller层)

? 实体类

Dao层的实体类:

  • 用户User
  • 博文Blog
  • 博文分类Type
  • 博文标签Tag
  • 博文评论Comment
  • 公告栏Bulletin
  • 朋友Friend
  • 留言Message

具体:

用户User
在这里插入图片描述
博文Blog
在这里插入图片描述

博文分类Type
在这里插入图片描述

博文标签Tag
在这里插入图片描述

博文评论Comment
在这里插入图片描述
公告栏Bulletin

在这里插入图片描述
朋友Friend
在这里插入图片描述

留言Message
在这里插入图片描述

由于使用了Spring Data JPA框架,数据库中的表是自动生成的。

? 持久层(Dao)和 业务逻辑层(Service)

这部分我不愿多说,它们负责的功能主要就是将数据从数据库中取出,再进行加工处理。

这部分如果详细说的话,加上后面Controller层的介绍,等于给你讲解整个项目的后端的数据是如何走起来的,你可能觉得这不是很好嘛?但这里,我就要说说我的看法了,这部分其实有着很大的发挥空间以及改进空间,比如说集合的处理,可以使用Stream,有些地方还能用到设计模式等,我不想先入为主,在观念上限制你。

如果你仅仅想拥有一个网站的话,那么也不用担心,这些瑕疵并不会导致网站不会正常运行,只能说它还不够好而已。

? 请求处理层(Controller层)

这部分是与前端直接打交道的地方,这一块清楚了,能够快速理解整个项目,这里我提供了请求与响应相关的文档

在这里插入图片描述
在这里插入图片描述
获取方式: 项目页面会有一个doc文件夹,点击里面的index.html即可
在这里插入图片描述

四、关于部署

这里你需要做一些事情(大部分的都可以不用动,必要修改的和可能会修改的都展示如下)

spring:thymeleaf:mode: HTMLcache: false # 开发环境 保证cache关闭,打开缓存不利于开发datasource:driver-class-name: com.mysql.jdbc.Driver    # 如果是Mysql8.0需要修改url: yours    # 你的数据库地址和建立的数据库username: yourUsername  #你的数据库的账号password: yourPassword #你的数据库的密码#Redisredis:host: 127.0.0.1  # 你的redis的地址port: 6379  # 你的redis的端口号# 邮件mail:host: smtp.163.comusername: XXX  # 发件人的用户名,这个自己把握,设置邮箱地址也不妨password: XXX # 授权码protocol: smtpproperties.mail.smtp.auth: trueproperties.mail.smtp.port: 994properties.mail.smtp.starttls.enable: trueproperties.mail.smtp.starttls.required: trueproperties.mail.smtp.ssl.enable: truedefault-encoding: utf-8from: XXX # 发件人的邮箱地址  server:# 端口号port: 9000 # 自己设置端口号
  1. 在项目上线之前,记得开启thymeleaf:的缓存,本身thymeleaf:比较慢,开启缓存会好一些。

  2. Mysql的配置应该会吧 ,这里不多说了。需要重点注意的是在启动项目之前,要先建立好数据库!在使用后台管理之前,要先向数据库中插入user信息。 这里插入的邮箱简称为“邮箱1号”吧,后面邮箱配置部分会说。

  3. 如果redis在本地的话,默认访问地址和端口是127.0.0.1 :6379 ,一定要注意,在启动项目之前,先把redis服务端打开。

  4. 邮箱的话,建议使用163邮箱(没那么多烦心事),作为发送邮件的代理人,这里的邮箱区别于数据库中管理员的“邮箱1号”,就把充当代理人的邮箱称为“邮箱2号”吧。在获取修改个人信息的权限的时候,邮箱2号会给邮箱1号发送邮件。

这里说一下授权码的获取:

  • 首先自行注册163邮箱,登陆之后,点击设置,选择“POP3/SMTP/IMAP”
    在这里插入图片描述
    选择 客户端授权密码 然后开启就行了 会让你验证信息,然后会有授权码的展示。
    在这里插入图片描述
  1. 设置Tomcat启动的端口号吧,记得不要冲突了。
  2. 由于使用了lombok依赖,要注意IDEA应安装的有lombok插件

五、关于项目本身

项目参考了一些资料,当时觉得只是练练手,没想到最后会开源出来,无法报出那些帮助过我的人,在这里表示非常感谢。

项目成品较为仓促,有很大的改进空间,比如说Springboot加缓存、一些设计模式的应用、还有一些集合的处理较为繁琐,可以改为Stream、由于thymleaf模板引擎性能不佳,你还可以换模板引擎等等等。

项目本身已经满足基本需求,你其实可以把它变得更酷。

如果你不喜欢前后端耦合在一起,其实在我github主页,有Vue版本的这个项目,前端技术栈采用Vue + SemanticUI-vue以及基于vue的Markdown插件,后端数据库相关的框架是Mybatis,后来因为SemanticUI-vue还在发展过程中,官方的文档不齐全,我在stack overflow等国外的开发者社区都没有找到相关的演示demo(基本上都是基于JQuery的SemanticUI),前端做起来很费劲,我毕竟不是搞前端的,也无心看源码,来贡献一些例子来。 如果哪天、semanticUI-vue文档齐全了,相关的资料多起来了,我大可能把现在的项目,改成前后端分离的。

如果你是Java初学者,通过这个项目,你至少具备了“搬砖”的本事了。

如果你比较厉害了,那可以轻松收获一个博客网站。我提供的辅助资料还是挺丰富的,代码中有着比较详细的注释,你还可以在此基础上,让它更加完善~

? Github地址:传送门

我会继续完善这个blog,如果fork的话,你可以更加容易找到我这个项目,如果你觉得这对你有帮助,最好的鼓励或打赏就是给我一个star。

六、我与CSDN

我这个话题好像写晚了呀~

我从今年三月份才开始坚持写博客,与我开始接触Java的日子重合,最初的时候呢,就仅仅在这里记录一下自己学习时的笔记啊,自己踩过的坑有哪些啊,诸如此类的东西,刚开始时,我与这个平台最初是没有太多的感情的。

后来呢,我坚持以写博文作为知识输出的方式被身边的好朋友注意到了,他们觉得不错也纷纷加入了这个平台。商业互吹一时兴起,点赞风波每天都有,我这里的圈子一下子热闹起来了,有的时候我和朋友们一起吃饭,也会讨论这里发生的有意思的事情,从那个时候,我有了第一批关注的人,也有了第一批的粉丝。

我写博客从来没有断过,可能是因为我的活跃叭,有越来越多的志同道合的朋友们注意到我的文章,有的人点赞给予鼓励,有的留言表示感谢,有的人指出我的错误,也有的人对我做的不好的地方进行了批评。总之,这里的故事没有停过,我的日子很丰富。

大概四月中旬的时候,CSDN 的APP新增了blink功能,在这个时间段我第一次下载了CSDN的app,首页推荐的博文大多质量都挺好的,很适合学习于拓宽视野。Blink方面有很多人在开车,有的时候我也会上车,但是发现大多情况下都不是去幼儿园的路。后来App添加私聊功能以后,因为经常有朋友私聊我,与我探讨问题,我几乎每天都要打开看一看,当然,逛blink,阅读博文仍是我的最爱。

随着关注量越来越多,CSDN的方方面面越来越熟悉,我接触了很多与自己发展方向相关的人,交了很多的朋友,~wandwellun对我来说就是一位特别的朋友,我们会在双方空闲的时候,一起扯皮,交流技术问题,虽然未曾见过一面,但是每次交流都觉得十分亲切。

再后来的后来,发觉自己已经彻底融入这个社区了。

刚才看了看自己私密的博文与发表的博文,发觉自己的成长竟然如此巨大,今年的二月份,我还迷惘着呢。

回顾这段日子,那样的悬崖年少,毕竟也一步一步攀越了,这些都是生命的恩泽。许多个将夜未夜的晚上,键盘上的码字,都能令自己的心中升起淡淡的暖意,蓦然回首。心里是感恩的,感谢那些志同道合的朋友们,感谢给予我鼓励的陌生人、感谢让这一切事情发生的平台。

最后祝 1024程序员节快乐呀~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_732546.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LAMP环境搭建实现网站动静分离[转]

目录: 1、环境概述 2、动静分离拓扑图 3、各服务器功能规划 4、各服务器基础环境配置 5、httpd安装配置 6、php安装配置及启用opcache加速功能 7、mysql安装配置 8、wordpress论坛程序安装测试 9、CA证书服务器及ssl配置 10、phpmyadmin安装测试 11、php的opcache加…

Slog34_支配vue框架初阶项目之博客网站-注册页面-前后端的数据交互

ArthurSlogSLog-34Year1GuangzhouChinaAug 10th 2018GitHub掘金主页简书主页segmentfault沉睡的狮子 即将醒来 而世界将为之震撼 开发环境MacOS(High Sierra 10.13.5) 需要的信息和信息源: HTTP概述HTTP互联网是如何工作的万维网是如何工作的统一资源定位符(URL)什么…

浅谈web网站架构演变过程

原文:浅谈web网站架构演变过程前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。 该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和…

网站备案知多少

网站备案知多少 DBAplus社群 2016-09-13 21:00:13 首先谈谈为什么要备案据工信部规定,使用大陆境内服务器的组织或个人,若要使用独立域名开办网站 ,就需要履行备案手续。就像开公司要去工商局申请执照一样,在国内,没有…

GoTxt网页内容提取器,可提取小说网,360doc网站的文字

为什么80%的码农都做不了架构师?>>> 以前写的一个网站文本提取器,很粗的,最近没时间改,把源码和jar文件分享出来 程序运行截图: 代码地址:https://github.com/doobo/GoTxt 转载于:https://my.o…

大型分布式网站架构技术总结:高性能+高可用+可扩展+可伸缩架构

本文是大型分布式网站架构的技术总结,文末有分布式架构设计33精讲资料~ 一、大型网站架构特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频…

邪恶花网站邪恶花_相关的子查询是“邪恶的”和“缓慢的”。 还是他们?

邪恶花网站邪恶花SQL中一个常见的神话是,相关子查询是邪恶且缓慢的。 例如,此查询在这里: SELECT first_name, last_name,(SELECT count(*) FROM film_actor fa WHERE fa.actor_id a.actor_id) FROM actor a它“强制”数据库引擎运行以下形…

如何把自己的wordpress网站移到本地修改

有时候wordpress更换模板时,需要修改的地方很多,而且在线修改不是很好。只能把它移动到电脑本地进行修改了。这样修改好就可以直接套用到网站上了。 1、通过服务器控制面板或FTP整站打包,发送到你已经在电脑本地搭建ApachePHPMySQL环境的网站…

网站pv uv 停留时间 等统计

为什么80%的码农都做不了架构师?>>> 日志中心收集网站访问数据内容 基于nginx记录用户cookie的行为,进行分析 一、用户cookie。 需要创建3个cookie文件_gtra、_gtrb、_gtrc,其中_gtra用来追踪用户,_gtrb和_gtrc联合来…

手机网站的注意事项

2019独角兽企业重金招聘Python工程师标准>>> 一.web app 手机网站的注意事项: 1.安卓浏览器看背景图片,有些设备会模糊--> devicePixeRatio手机分辨率过小造成,解决方法使用2倍背景图代替img标签. 2.图片加载很慢--> 手机开发一般用canvas方法加载 3.手机端不…

《流量的秘密 Google Analytics网站分析与商业实战》一1.3 Google Analytics的地位

本节书摘来自异步社区《流量的秘密 Google Analytics网站分析与商业实战》一书中的第1章,第1.3节,作者 【英】Brian Clifton,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.3 Google Analytics的地位 你的网站对你来说是极其重要的…

一个止传SWF的好网站

SwfCabin 是一個免費swf空間,最初建立的構想在於「如何在網路上將swf檔分享給別人」。使用者可以將swf檔上傳到 SwfCabin 然後獲得一個連結,其他人便可以在該頁面看到您所上傳的swf檔案。上傳檔案時 SwfCabin 會自動辨識該檔案最適當的顯示尺寸。除此之外…

大型网站架构之分布式缓存

缓存是优化网站性能的第一手段。在大型网站中,缓存通常用来保存热点数据,或者保存应用上下文相关信息。比如之前提到的session服务器集群就可以用分布式缓存来搭建。当然,分布式缓存还可用于缓存数据库中的热点数据以减轻数据库的压力。 分布…

决议要素_2020年每个网站测试人员的新年决议

决议要素您能够根据2019年的决议进行工作吗? 我在这里听起来可能很可笑,但是作为Web开发人员,我在2019年的决心是在业余时间跳入Web测试。 为什么? 因此,我可以从测试人员的角度了解发布周期。 我想穿他们的鞋子&#…

Thinking——nodejs实现的SEO相关的库

SEO SEO是为了网站在搜索引擎中的自然排名更靠前,引入更多的用户流量。SEO有很多技巧,譬如官网多发优质文章,文章的url做成静态化,文章多出现一些搜索相关的关键字,自建站群等等。 百度收录 百度定期会对优质文章进行收…

下拉框系统甄选火星推荐_seo关键词下拉框优化技术

“seo关键词下拉框优化技术,百度下拉框的算法,一个关键词每天有多少搜索量,和它相关的词有多少搜索量,这些数据百度都记录在案的,在百度搜索一个较短关键词的时候,下拉框中可能会出现一些和它相关的一些长尾词.”百度下拉框关键词指的是就是在百度搜索某一个关键词的时候&#…

大型网站架构演化历程

http://www.hollischuang.com/archives/728 本文内容大部分来自《大型网站技术架构》,这本书很值得一看,强烈推荐。 大型网站系统的特点 高并发,大流量 需要面对高并发用户,大流量访问。Google 日均 PV 35 亿,日 IP 访问数 3 亿&a…

SEO优化手工外链为什么更好?

开发十年,就只剩下这套Java开发体系了 >>> 手工发布的外链,是这个完结百度的网站权重与关键词排行优化的:咱 们通过手工在论坛/博客上回复主题帖子,并带有锚文体链接,这样的单向链接直接指 向你的网站&…

SEO核心技术纯白帽快速排名方法

我相信很多朋友都知道SEO快速排名,现在流行的快速排名都是众人皆知的黑帽SEO技术,但是却唯独不知道纯白帽也可以快速排名。但是我估计大家都看到过很多新站在短短数月内就上了首页,权重从0升到3,这难道是黑帽吗,不是的…

实验----实现基于LNMP的电子商务网站

实现基于LNMP的电子商务网站一、准备LNMP环境所需的包:yum install mariadb-server php-fpm php-mysql nginx二、准备网站:mkdir -p /data/web 建站点unzip -d /data/web xiaomi.zip 导入小米网站的源码包并解压到/data/webcd /data/web &…