一起動手寫一個java博客

前言

問什么想要寫這樣的一個博客

  • 原有的WordPress無法為我的Android開發(fā)提供全面的接口畜眨,自定義程度較低堕花。
  • 已學Java祈噪,正在接觸web開發(fā),期望有項目可以練手壮韭。
  • 喜歡用自己的東西北发,不太喜歡抄襲和復用別人的項目。
  • 記錄我遇到的難題喷屋。
  • 對技術的熱愛&閑

很早之前就再接觸博客琳拨,而自己的興趣也比較廣泛,很多方面的東西都有接觸屯曹,當然網(wǎng)站也是很早就接觸過了狱庇,也對網(wǎng)站有很多的執(zhí)念,他不需要像Android軟件那樣需要安裝才能使用恶耽,不需要像小程序那樣只限定在某一個軟件里面才能打開密任,也不需要像windows/linux那樣限制在某一個平臺。對于一個網(wǎng)站偷俭,只有設備有網(wǎng)絡浪讳,有瀏覽器就可訪問你的網(wǎng)站。而且對于你的網(wǎng)站社搅,你的更新可以不受用戶的限制驻债,不需要用戶操作就可更新迭代,這全部由開發(fā)者自己決定形葬。當然網(wǎng)站還有最重要的一點合呐,就是可定制性高,需要什么功能自己實現(xiàn)即可笙以。

于是淌实,我決定自己動手寫一個博客。

手寫一個博客你能學到什么

  • Springboot
  • Spring data Jpa / Mybatis
  • redis
  • shiro
  • mysql
  • Maven
  • angular(不保證你能學到什么,前端部分一團糟)

以此來作為一個springboot的入門級項目也是不錯的拆祈,邊敲代碼邊學習恨闪。能夠?qū)W習到不少的東西,但是用到的這些東西并不是該項技術的全部放坏,望周知咙咽。
如果你有springboot的項目經(jīng)驗,以此來串聯(lián)起各個方面的知識也是不錯的淤年。

需求

前臺展示頁面

  1. 首頁展示文章钧敞,標簽,以及簡單的個人信息
  2. 有標簽和分類的單獨頁面麸粮。
  3. 有用戶系統(tǒng)
  4. 用戶可以進行留言和評論溉苛。
  5. 網(wǎng)站的更新記錄

后臺展示頁面

  1. 文章管理
  2. 文章撰寫(Markdown格式)
  3. 標簽,分類管理
  4. 留言弄诲,評論管理
  5. 友鏈愚战,網(wǎng)站更新記錄的管理
  6. 用戶管理
  7. 訪客詳情

部署

前后端分離部署

前端 :nginx 靜態(tài)部署
后端:java - jar xxx & 后臺運行任務

設計

后端用到的技術

技術 名稱
項目框架 Springboot
orm mybatis
分頁 PageHelper
緩存 redis
項目構建 maven
權限管理框架 shiro
數(shù)據(jù)庫 mysql 5.7
數(shù)據(jù)庫連接池 alibaba druid
開發(fā)環(huán)境 IDEA
運行環(huán)境 Ubuntu 16.04
圖床 七牛云

前端用到的技術

技術 名稱
項目框架 angular 8.0
markdown解析 <span>Editor.md</span>
ui庫 Ant Design

數(shù)據(jù)庫

CREATE DATABASE `blog`;

USE blog;

CREATE TABLE `article`
(
    `a_id`             bigint(20) primary key auto_increment,
    `a_title`          varchar(255) not null comment '文章標題',
    `a_summary`        varchar(255) not null comment '文章摘要',
    `a_md_content`     longtext     not null comment '文章Markdown內(nèi)容',
    `a_tags_id`        varchar(255) not null comment '標簽id \',\'處于最尾端',
    `a_category_id`    bigint(20)   not null comment '分類的id',
    `a_url`            tinytext   default null comment '轉(zhuǎn)載文章的原文鏈接',
    `a_author_id`      bigint(20)   not null comment '作者id',
    `a_is_open`        boolean    default true comment '文章是否可見',
    `a_is_original`    boolean    default true comment '文章是否原創(chuàng)',
    `next_a_id`        bigint(20) default -1 comment '下篇文章id',
    `pre_a_id`         bigint(20) default -1 comment '前一篇文章的id',
    `a_reading_number` int        default 0 comment '文章閱讀數(shù)',
    `a_publish_date`   datetime     not null comment '文章發(fā)布時間',
    `a_update_date`    datetime   default null comment '文章的更新時間'
) comment '文章表';

CREATE TABLE `tag`
(
    `tag_id`   bigint(20) primary key auto_increment,
    `tag_name` varchar(255) not null,
    `articles` tinytext default null comment 'tag對應的文章id'
) comment '標簽表';

CREATE table `category`
(
    `c_id`     bigint(20) primary key auto_increment,
    `c_name`   varchar(255) not null,
    `articles` varchar(255) comment '分類下的文章'
) comment '分類表';

CREATE TABLE `comment`
(
    `co_id`          bigint(20) primary key auto_increment,
    `co_article_id`  bigint(20)          default -1 comment '文章id',
    `is_comment`     boolean             default true comment '是否是評論',
    `author_id`      bigint(20) not null comment '留言者id',
    `co_content`     text       not null comment '評論/留言內(nèi)容',
    `co_date`        datetime   not null comment '評論/留言的日期',
    `co_pid`         bigint     not null default -1 comment '評論/留言的父id',
    `co_response_id` tinytext
) comment '評論/留言表';

CREATE TABLE `links`
(
    `site_id`   bigint(20) primary key auto_increment,
    `site_name` varchar(255) not null comment '友站名稱',
    `is_open`   boolean default true comment '是否公開',
    `site_url`  varchar(255) not null comment '首頁地址'
) comment '友站表';

CREATE TABLE `visitor`
(
    `v_id`         bigint(20) primary key auto_increment,
    `v_date`       datetime     not null comment '訪問時間',
    `v_ip`         varchar(255) not null comment '訪客ip',
    `v_user_agent` text comment '訪客ua'
) comment '訪客表';



CREATE TABLE IF NOT EXISTS `web_update`
(
    `update_id`   bigint(20) primary key auto_increment,
    `update_info` varchar(255) not null comment '更新內(nèi)容',
    `update_time` datetime     not null comment '更新時間'
) comment '更新內(nèi)容表';

create table `user`
(
    `u_id`                 int         not null primary key auto_increment,
    `u_email`              varchar(50) not null,
    `u_uid`                varchar(40)          default null comment '用戶唯一標識碼',
    `u_pwd`                varchar(40) not null comment '密碼',
    `email_status`         boolean              default false comment '郵箱驗證狀態(tài)',
    `u_avatar`             varchar(255) comment '用戶頭像',
    `u_desc`               tinytext comment '用戶的描述',
    `recently_landed_time` datetime comment '最近的登錄時間',
    `email_verify_id`      varchar(40) comment '用于找回密碼或驗證郵箱的id',
    `display_name`         varchar(30) comment '展示的昵稱',
    `role`                 varchar(40) not null default 'user' comment '權限組',
    unique key `uni_user_id` (`u_id`),
    unique key `uni_user_uid` (`u_uid`),
    unique key `uni_user_email` (`u_email`)
) comment '用戶表';

前端界面

首頁:


index

文章頁面


在這里插入圖片描述

后臺管理頁面(管理員)


admin

(用戶)


useradmin

write

總結

目前網(wǎng)站還存在的問題:
未來增加的功能:

因為項目不定時更新,所以一些問題請移步于github

https://github.com/xiaohai2271/blog
開發(fā)這個博客我走的路算是比較曲折齐遵,多次重構寂玲、前端頁面多次更換框架、前后端的整合多次調(diào)整洛搀。如今才算是勉強穩(wěn)定下來敢茁。
我深知這個博客還有很多不足,代碼也還有很多不規(guī)范的地方留美,我也會不斷的修改,不斷的完善

詳情:https://www.celess.cn
項目已上傳github
前端部分:https://github.com/xiaohai2271/blog-frontEnd
后端部分:https://github.com/xiaohai2271/blog-backEnd
如果對你有幫助伸刃,請多多支持我谎砾,幫我點一個star ?

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捧颅,隨后出現(xiàn)的幾起案子景图,更是在濱河造成了極大的恐慌,老刑警劉巖碉哑,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挚币,死亡現(xiàn)場離奇詭異,居然都是意外死亡扣典,警方通過查閱死者的電腦和手機妆毕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贮尖,“玉大人笛粘,你說我怎么就攤上這事。” “怎么了薪前?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵润努,是天一觀的道長。 經(jīng)常有香客問我示括,道長铺浇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任垛膝,我火速辦了婚禮鳍侣,結果婚禮上,老公的妹妹穿的比我還像新娘繁涂。我一直安慰自己拱她,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布扔罪。 她就那樣靜靜地躺著秉沼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪矿酵。 梳的紋絲不亂的頭發(fā)上唬复,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機與錄音全肮,去河邊找鬼敞咧。 笑死,一個胖子當著我的面吹牛辜腺,可吹牛的內(nèi)容都是我干的休建。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼评疗,長吁一口氣:“原來是場噩夢啊……” “哼测砂!你這毒婦竟也來了?” 一聲冷哼從身側響起百匆,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤砌些,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后加匈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體存璃,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年雕拼,在試婚紗的時候發(fā)現(xiàn)自己被綠了纵东。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡悲没,死狀恐怖篮迎,靈堂內(nèi)的尸體忽然破棺而出男图,到底是詐尸還是另有隱情,我是刑警寧澤甜橱,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布逊笆,位于F島的核電站,受9級特大地震影響岂傲,放射性物質(zhì)發(fā)生泄漏难裆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一镊掖、第九天 我趴在偏房一處隱蔽的房頂上張望乃戈。 院中可真熱鬧,春花似錦亩进、人聲如沸症虑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谍憔。三九已至,卻和暖如春主籍,著一層夾襖步出監(jiān)牢的瞬間习贫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工千元, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留苫昌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓幸海,卻偏偏與公主長得像祟身,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子物独,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355