作為一個程序員,工作之外的不斷學習是必須的。這個項目是我個人課外學習和練手的項目。最開始是一個個人網站。當時發現京東雲可以免費部署網站的,就立即寫了一個網站,當時就使用jsp技術,可以實現發布博客、評論博客、留言基本功能,首頁展示了個人信息。數據庫使用MySQL。通過git上傳代碼,部署成功后,在朋友中反響不錯,訪問和評論人很多。但是過了半年,京東雲要收費了,我這個個人網站也就關停了。
但是這個項目我一直保留了下來,並且不斷進行完善,不斷加入新的技術。先后使用了Spring MVC、Hibernate,以及其他EasyUI、ECharts等前端框架,后面又加入了ElasticSearch作為全文檢索功能。還自己寫了爬蟲,可以抓取網上感興趣的文章,保存到自己的博客中。功能越來越強大,也越來越完善,細節處理越來越好。一是想將該項目作為自己學習新技術的地方,學習到的新技術,在這個項目上實驗下,新的想法,在這個項目上實現。既能學新知識,又能鍛煉思維。二是想某個時候能將該項目應用到實際工作中,個人覺得技術公司應該有自己的博客的,一個部門建立一個博客,每個人有想法都可以去寫一寫,這不僅是對自己知識的總結,也是公司技術的積累,對新來的員工有極大的指導作用。希望有公司能夠使用自己的博客系統。再者也是算對開源做出貢獻吧,雖然各種開源項目很多,該項目寫得也不是非常好,但是也算是可以作為其他人參考學習的材料吧。
該博客系統將一直增加新的功能、新的技術,並長期作為自己的練習項目。
截止2017年05月07號,項目進展如下:
項目暫且命名為:EasyBlog,意為簡單的博客系統。代碼寫得簡單,界面也簡單吧。想法也來源使用了EasyUI,所以博客也帶Easy。
主要技術:Spring MVC、Hibernate、Maven、EasyUI、Echarts、ElasticSearch、爬蟲、MySQL
開發工具:Ubuntu、Eclipse、git
主要功能:
1、首頁博客的分頁顯示,博客分類,文章歸類顯示;
2、用戶可以評論、推薦博客;
3、實現關鍵詞搜索文章功能,可以實現標題和文章內容關鍵詞搜索;
4、后台對博客、博客類別、用戶評論的管理,使用kindeditor編輯器實現寫博客功能;
5、使用ECharts作為統計圖展現時間段發表博客數量,可以展示每天、每月、每年的博客發表數量;
6、自己寫了爬蟲,爬取其他網站信息加入到自己的博客中。通過博客網站登錄,可以設置關鍵詞,后台自動進行抓取。
由此項目也引申了另外兩個開源項目:爬蟲和Echarts封裝。爬蟲主要功能是根據關鍵詞爬取感興趣的文章,加入到自己的博客中。目前僅支持抓取博客園,因為每個網站頁面結構是不同,需要對特定網站結構進行分析,抓取特定結構中的信息。后續再不斷的進行完善,實現能夠導入不同網站結構,實現對不同網站進行抓取。Echarts封裝,是抽象了百度的Echarts,使得能夠少寫代碼即可實現圖形展示。
項目中還寫了Hibernate助手類、ElasticSearch助手類,可以拿出來直接使用。尤其是ElasticSearch助手類,網上比較好的助手類還比較少,尤其是高版本的(本項目中使用ElasticSearch5)。該助手類中實現了對索引的增刪改查功能,提供多種搜索方法,可以實現and、or搜索,語法高亮等。使用方便快捷。
爬蟲源代碼:https://github.com/leanfish2011/Crawler
Echarts封裝源代碼:https://github.com/leanfish2011/MyEcharts
后續將圍繞這個博客系統寫一系列的文章,介紹項目的完成過程,歡迎大家指導!
一. 前台效果展示
1. 博客主頁顯示
3. 全文檢索
二. 后台效果展示
1. 登錄
2. 后台主頁
3. 寫博客功能
4. 博客管理
5. 添加博客類別等等