CleanBlog是一個高端(低調)、大氣(簡潔)的個人博客系統,之前在網上看到了好多個人博客網站,感覺很酷的,自己也想搭建一個,最近 剛學完SSM(Spring/SpringMVC/MyBatis),所以就采用SSM來搭建一個簡潔的個人博客。先上一張博客首頁圖片:
CleanBlog整體架構比較簡單,主要有寫博客、看博客、留言板功能。CleanBlog由SSM技術來實現,SpringMVC負責請求解析轉發 並渲染視圖,MyBatis負責持久層的交互操作,Spring作為整體平台集成SpringMVC和MyBatis。數據庫使用MySQL,Web前端 采用了Bootstrap,文本編輯器使用了UEditor(一個開源富文本Web編輯器,來自百度),前端布局靈感來自於Clean Blog(也可以說是套用該模板)。
CleanBlog整體框架圖:
CleanBlog采用IDEA開發,首先需要搭建SSM環境,關於如何在IDEA下搭建SSM環境請點擊:MyBatis使用總結+整合Spring和Spring學習之第一個Spring MVC程序(IDEA開發環境)。最後搭建好的工程如下圖所示:
目前CleanBlog功能較少,只涉及到2張表,blog表和message表(留言板功能)。兩個表結構分別如下所示:
CREATE TABLE blog ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, title VARCHAR(128) NOT NULL, text TEXT, preview VARCHAR(128), author VARCHAR(32), category VARCHAR(32), date TIMESTAMP DEFAULT '2016-05-20 00:00:00' ); CREATE TABLE message ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, author VARCHAR(32), content TEXT, date TIMESTAMP DEFAULT '2016-05-20 00:00:00' )
數據表操作Dao類在 com.luoxn28.blog.dao包下,主要有Blog和Message相關Dao類,其中該包下的xxxMapper.xml文件是對應Dao 類的SQL映射文件,MyBatis中會用到該SQL映射文件。com.luoxn28.blog.dao包結構如下所示:
CleanBlog控制器類有Blog類(用於顯示blog)、Index類(顯示主頁)、Message類(留言板功能)、Post(在線寫博客),這幾個類都在com.luoxn28.blog.controller包下,該包結構如下所示:
比如Index源碼如下,負責接收主頁請求邏輯的處理:
package com.luoxn28.blog.controller; import com.luoxn28.blog.dao.Blog; import com.luoxn28.blog.dao.BlogDao; import com.luoxn28.blog.dao.MessageDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; import java.util.Map; /** * Index控制器 * @author luoxn28 * @date 2016.6.18 */ @Controller @RequestMapping public class Index { // blog表操作類 @Autowired private BlogDao blogDao; // Message表操作類 @Autowired private MessageDao messageDao; @RequestMapping("/index") public String index(Map<String, Object> map) { List<Blog> blogs = blogDao.getAll(); List<com.luoxn28.blog.dao.Message> messages = messageDao.getAll(); map.put("blogs", blogs); map.put("messages", messages); return "index"; } @RequestMapping("/") public String index0(Map<String, Object> map) { return index(map); } }
下面到了見證源碼的時刻了,該項目的源碼已經push到了我的github上了,項目地址為:luoxn28/CleanBlog(ps: 歡迎Star);CleanBlog目前已經部署到了服務器上,在線訪問請點擊:http://luoxn28.xyz:8080/。
fork整個CleanBlog工程後,下載到本地,然後新建IDEA的J2EE工程,選擇Web Application。然後導入CleanBlog源碼,在src目錄下新建db.properties文件,該文件和db.sql文件在同一個目錄 下,用於配置數據庫相關信息,主要配置內容如下所示,jdbcUrl後的參數用於設置數據傳輸編碼格式,解決中文入庫亂碼問題。
user=xxx password=xxx driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://192.168.1.150/clean_blog?useUnicode=true&characterEncoding=utf8
然後,登錄MySQL,運行工程src目錄下的db.sql中的所有命令,新建項目所需的數據庫和數據表。最後編譯、運行,打開浏覽器就可以看到CleanBlog的主頁了。
資源鏈接:
1、CleanBlog源碼
2、CleanBlog在線演示