javaweb個(gè)人博客系統(tǒng)-第二版—項(xiàng)目概述

22.jpg

2018.11.08更新:
代碼更新已提交github深员,更新如下:

1.Elasticsearch全文檢索——之前說(shuō)過(guò)的Elasticseach,現(xiàn)在終于加上了粥鞋,附帶Logstash定時(shí)增量導(dǎo)入Mysql中的數(shù)據(jù)。
2.增加和完善了用戶收藏、評(píng)論區(qū)創(chuàng)建討論和點(diǎn)贊的功能
3.個(gè)人中心查看已收藏文章的功能贱勃、個(gè)人中心上傳圖片(按時(shí)間線排列的照片墻)的功能

下一步要做的事:
1.完善功能、修改bug和代碼谤逼;
2.完善一下Spring和數(shù)據(jù)庫(kù)的事務(wù)實(shí)現(xiàn)贵扰。譬如刪除一篇文章時(shí)要批量刪除該文章下的所有感謝、收藏和評(píng)論信息流部;同時(shí)刪除評(píng)論下的點(diǎn)贊和討論信息戚绕。此處打算用多線程+編程式事務(wù)來(lái)實(shí)現(xiàn)一下。
3.添加消息中間件枝冀,考慮高并發(fā)條件下的安全問(wèn)題(雖然并不會(huì)有那么多人訪問(wèn)...)舞丛。譬如多人同時(shí)點(diǎn)贊怎么處理......
4.部署上線


這是在第一版的【個(gè)人博客系統(tǒng)】的基礎(chǔ)上開(kāi)發(fā)的第二版?zhèn)€人博客系統(tǒng),基于SSM框架的Java8果漾、Maven構(gòu)建球切,github地址:**https://github.com/Flowingsun007/LyonBlog
這個(gè)項(xiàng)目是個(gè)人學(xué)java時(shí)自己做的,從前端-到后端-數(shù)據(jù)庫(kù)都是100%原創(chuàng)的绒障;第一版的項(xiàng)目是jsp+servlet寫(xiě)的吨凑,學(xué)了SSM后重構(gòu)了一次才有的這個(gè)項(xiàng)目,里面代碼寫(xiě)的比較水户辱,勿噴鸵钝;新人學(xué)習(xí)玩耍還是可以的~P.S.后面有時(shí)間會(huì)不斷重構(gòu)和優(yōu)化里面的代碼_

1.項(xiàng)目展示

外觀:

image
image
image

【功能】:

用戶登錄注冊(cè)、MD5加密焕妙、郵箱驗(yàn)證蒋伦。 博客文章前臺(tái)展示、文章點(diǎn)贊焚鹊、評(píng)論痕届、收藏韧献,支持對(duì)評(píng)論進(jìn)行點(diǎn)贊和討論。 后臺(tái)admin管理研叫,支持文章的新增锤窑、修改、刪除嚷炉、文章和標(biāo)簽批量管理渊啰。 個(gè)人中心,查看收藏的文章申屹、用戶上傳圖片绘证、照片墻。

2.技術(shù)棧

開(kāi)發(fā)環(huán)境:
macOS/Win10系統(tǒng)+Idea開(kāi)發(fā)+Maven構(gòu)建+Git版本控制
前端:
html+css+javascript;bootstrap+jquery+ajax;
模板引擎:
velocity
開(kāi)源彈框組件:
sweetalert
Markdown編輯器:
Editor.md
容器:
Tomcat9
權(quán)限:
Apache Shrio
后端:
Spring+SpringMVC+Mybatis+Mysql+Druid
緩存+session管理:
Redis哗讥。由于2個(gè)Tomcat可能部署在不同的服務(wù)器上嚷那,故涉及到session共享的問(wèn)題,此處用redis來(lái)管理所有session,同時(shí)redis兼緩存一些文章分類信息杆煞、標(biāo)簽信息等魏宽。
反向代理+動(dòng)靜分離:
Nginx。Nginx作為統(tǒng)一入口决乎,靜態(tài)資源請(qǐng)求如js队询、圖片、css文件等直接由nginx處理构诚,動(dòng)態(tài)請(qǐng)求轉(zhuǎn)發(fā)至Tomcat中處理蚌斩。 目前配置了2個(gè)Tomcat,Nginx采取默認(rèn)的輪訓(xùn)處理請(qǐng)求范嘱。
全文檢索:
ElasticSearch是流行的全文檢索服務(wù)器凳寺,主要用于博客搜索。Logstash設(shè)定了簡(jiǎn)單的增量導(dǎo)入彤侍,從Mysql中定時(shí)查詢文章內(nèi)容放入Elasticsearch中肠缨,從而提供博客文章全文檢索的功能,避免直接查數(shù)據(jù)庫(kù)帶來(lái)較大的開(kāi)銷盏阶。
架構(gòu)圖:

image

3.項(xiàng)目部署

由于主項(xiàng)目是在Mac上開(kāi)發(fā)的晒奕,所以對(duì)Linux系統(tǒng)比較友好。Github地址:Flowingsun007/LyonBlog 名斟,歡迎點(diǎn)贊~

【分支】

  • master:本地mac上開(kāi)發(fā)脑慧,同步更新的分支
  • centOS:用于在阿里云服務(wù)器上的分支,基本和master分支類似砰盐,有個(gè)別配置如jdbc.properties闷袒、log4j.properties、EmailService.java(發(fā)送注冊(cè)郵件)有些許不同
  • windows:僅僅是為了跑起來(lái)而新建的此分支岩梳,不保證及時(shí)更新囊骤。BTW:我發(fā)現(xiàn)mac上看的前端效果比較好看晃择,到windows上就比較丑了....我也很無(wú)奈~

【項(xiàng)目標(biāo)準(zhǔn)配置】

  • 0.JDK1.8
  • 1.Mysql5.7
  • 2.Tomcat9(2個(gè))
  • 3.Nginx1.14.0
  • 4.Redis4.0.10
  • 5.Elaticsearch、Logstash——6.4.2

Mysql配置

  • a.數(shù)據(jù)庫(kù)連接:resources文件夾下的jdbc.properties
  • b.數(shù)據(jù)庫(kù)的sql包括ddl和dml也物,放在項(xiàng)目resources文件夾下宫屠。

Tomcat配置
只需要改server.xml文件中的幾個(gè)地方即可,這里提供我本地的配置文件做參考滑蚯。

log4j配置
主要是log4j.properties里修改幾種類別日志存放路徑

Nginx浪蹂、Redis配置
同樣,提供本地參考告材,所有的關(guān)鍵配置文件都放在resources/conf文件夾下坤次。

靜態(tài)資源配置
由于項(xiàng)目用的是Nginx,動(dòng)靜分離的斥赋,所以靜態(tài)資源全部放置在Nginx下的html文件夾下浙踢,可以在百度網(wǎng)盤(pán)下載: 鏈接:https://pan.baidu.com/s/1K2Ahz_L4cYR04YtgdCmSGA 提取碼:bdbb

【啟動(dòng)和運(yùn)行】

項(xiàng)目啟動(dòng)標(biāo)準(zhǔn)配置:
Nginx+Redis+2個(gè)Tomcat+Elasticsearch+Logstash

項(xiàng)目啟動(dòng)最簡(jiǎn)配置:
Nginx+Redis+1個(gè)Tomcat

啟動(dòng)順序:
首先安裝好Mysql,Mysql的表和數(shù)據(jù)建好灿渴、安裝和配置Tomcat、Nginx胰舆、Redis骚露,然后就可以啟動(dòng)了。 Nginx和Redis先啟動(dòng)缚窿,然后啟動(dòng)Tomcat棘幸,在Idea中可以直接啟動(dòng)Tomcat、或者手動(dòng)打war包放入Tomcat中運(yùn)行倦零。

Tomcat啟動(dòng)完成后再啟動(dòng)Elasticsearch+logstash误续。Elasticsearch+logstash是可選項(xiàng),可以不啟動(dòng)扫茅。

【文件夾結(jié)構(gòu)】

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蹋嵌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子葫隙,更是在濱河造成了極大的恐慌栽烂,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恋脚,死亡現(xiàn)場(chǎng)離奇詭異腺办,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)糟描,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)怀喉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人船响,你說(shuō)我怎么就攤上這事躬拢《懵模” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵估灿,是天一觀的道長(zhǎng)崇呵。 經(jīng)常有香客問(wèn)我,道長(zhǎng)馅袁,這世上最難降的妖魔是什么域慷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮汗销,結(jié)果婚禮上犹褒,老公的妹妹穿的比我還像新娘。我一直安慰自己弛针,他們只是感情好叠骑,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著削茁,像睡著了一般宙枷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上茧跋,一...
    開(kāi)封第一講書(shū)人閱讀 52,158評(píng)論 1 308
  • 那天慰丛,我揣著相機(jī)與錄音,去河邊找鬼瘾杭。 笑死诅病,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粥烁。 我是一名探鬼主播贤笆,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼讨阻!你這毒婦竟也來(lái)了芥永?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤钝吮,失蹤者是張志新(化名)和其女友劉穎恤左,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體搀绣,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡飞袋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了链患。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巧鸭。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖麻捻,靈堂內(nèi)的尸體忽然破棺而出纲仍,到底是詐尸還是另有隱情呀袱,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布郑叠,位于F島的核電站夜赵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏乡革。R本人自食惡果不足惜寇僧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沸版。 院中可真熱鬧嘁傀,春花似錦、人聲如沸视粮。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蕾殴。三九已至笑撞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钓觉,已是汗流浹背茴肥。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留议谷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓堕虹,卻偏偏與公主長(zhǎng)得像卧晓,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赴捞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 概述 監(jiān)控預(yù)警平臺(tái), eagle + eye (鷹眼)的合體詞, 寓意可以快速發(fā)現(xiàn)問(wèn)題, 并及時(shí)作出響應(yīng),Eagl...
    Kungfu貓熊閱讀 7,396評(píng)論 0 52
  • 本人陸陸續(xù)續(xù)接觸了ELK的1.4逼裆,2.0,2.4赦政,5.0胜宇,5.2版本,可以說(shuō)前面使用當(dāng)中一直沒(méi)有太多感觸恢着,最近使用...
    三杯水Plus閱讀 4,107評(píng)論 0 12
  • 本期簡(jiǎn)說(shuō)提高軟件產(chǎn)品質(zhì)量有三個(gè)方面需要把握(本篇文章談ELK的使用): 一桐愉、持續(xù)集成 二、自動(dòng)化 三掰派、ELK日志分...
    隔壁老田_閱讀 2,461評(píng)論 0 2
  • Mybatis有四個(gè)核心組件:SqlSessionFactoryBuilder(構(gòu)造器):根據(jù)代碼或者配置生成Sq...
    0號(hào)機(jī)閱讀 359評(píng)論 0 0
  • 與你相約去看云 夏天的天空豐富多彩从诲,變幻無(wú)窮,仰望蒼穹靡羡,令人心曠神怡系洛,宛若置身世外俊性,伸開(kāi)想象的雙翅,飛九萬(wàn)里探大...
    阿珍小魚(yú)閱讀 120評(píng)論 0 0