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在線演示