CleanBlog(个人博客+源码)
CleanBlog是一个高端(低调)、大气(简洁)的个人博客系统,之前在网上看到了好多个人博客网站,感觉很酷的,自己也想搭建一个,最近 刚学完SSM(Spring/SpringMVC/MyBatis),所以就采用SSM来搭建一个简洁的个人博客。先上一张博客首页图片:
1 CleanBlog架构
CleanBlog整体架构比较简单,主要有写博客、看博客、留言板功能。CleanBlog由SSM技术来实现,SpringMVC负责请求解析转发 并渲染视图,MyBatis负责持久层的交互操作,Spring作为整体平台集成SpringMVC和MyBatis。数据库使用MySQL,Web前端 采用了Bootstrap,文本编辑器使用了UEditor(一个开源富文本Web编辑器,来自百度),前端布局灵感来自于Clean Blog(也可以说是套用该模板)。
CleanBlog整体框架图:
2 CleanBlog逻辑讲解
CleanBlog采用IDEA开发,首先需要搭建SSM环境,关于如何在IDEA下搭建SSM环境请点击:MyBatis使用总结+整合Spring和Spring学习之第一个Spring MVC程序(IDEA开发环境)。最后搭建好的工程如下图所示:
2.1 数据表
目前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'
)
2.2 数据表操作Dao类
数据表操作Dao类在 com.luoxn28.blog.dao包下,主要有Blog和Message相关Dao类,其中该包下的xxxMapper.xml文件是对应Dao 类的SQL映射文件,MyBatis中会用到该SQL映射文件。com.luoxn28.blog.dao包结构如下所示:
2.3 CleanBlog控制器类
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);
} }
3 CleanBlog源码获取
下面到了见证源码的时刻了,该项目的源码已经push到了我的github上了,项目地址为:luoxn28/CleanBlog(ps: 欢迎Star);CleanBlog目前已经部署到了服务器上,在线访问请点击:http://luoxn28.xyz:8080/。
3.1 如何使用CleanBlog
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的主页了。
资源链接:
CleanBlog(个人博客+源码)的更多相关文章
- 源码安装ceph后使用测试集群的方法
标签(空格分隔): ceph,ceph实验,ceph源码 通过博客 源码编译安装ceph(aarch64架构) 成功安装ceph之后,之后可以运行一个测试集群进行实验 1,进入安装构建目录: [roo ...
- 博皮设计:HTML/CSS/Javascript 源码共享
首先感谢 sevennight 对我的大力帮助,由此他也成为了我的第一位园友:其次,由于本人并不了解 HTML/CSS,因此几乎都在 李宝亨 设计的 博皮源码 的基础上进行的修改:最后,为了获得 更加 ...
- C#源码500份
C Sharp 短信发送平台源代码.rar http://1000eb.com/5c6vASP.NET+AJAX基础示例 视频教程 http://1000eb.com/89jcC# Winform ...
- OpenCV开发笔记(六十四):红胖子8分钟带你深入了解SURF特征点(图文并茂+浅显易懂+程序源码)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- OpenCV开发笔记(六十五):红胖子8分钟带你深入了解ORB特征点(图文并茂+浅显易懂+程序源码)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- Beta阶段Scrum 冲刺博客合集
Beta阶段博客链接集合 第一篇Scrum冲刺博客 第二篇Scrum冲刺博客-Day1 第三篇Scrum冲刺博客-Day2 第四篇Scrum冲刺博客-Day3 第五篇Scrum冲刺博客-Day4 第六 ...
- .NET 推荐博客
燎原之星的博客 农码一生博文索引 http://www.cnblogs.com/zhaopei/p/Indexes.html 那些年搞不懂的术语.概念:协变.逆变.不变体 http://www.cnb ...
- 博客系统实战——SprintBoot 集成Thymeleaf 实现用户增删查改(含源码)
近来在学习SprintBoot +Thymeleaf +Maven搭建自己的博客系统,故在学习过程中在此记录一下,也希望能给广大正在学习SprintBoot和Thymeleaf的朋友们一个参考. 以下 ...
- 小兔博客新增源码下载模块,JavaWeb项目实战,JavaScript入门教程 ,JavaSE案例等
从今以后,所有的源码在 http://www.xiaotublog.com/downloadView.html 都可以免费下载,在下载页面还可以直接链接到相关的教程地址(如果有教程的话...). 最近 ...
随机推荐
- 【HTML5】Canvas图像
把一幅图像放置到画布上, 使用以下方法: drawImage(Img,x,y); 注:这里的Img必须是一个图像对象. 显示一个canvas图像: <!DOCTYPE html> &l ...
- JavaScript事件对象
一. 事件对象 事件处理三部分组成:对象.事件处理函数=函数.例如:单击文档任意处. 1.鼠标按钮 非 IE(W3C)中的 button 属性 0 表示主鼠标按钮(常规一般是鼠标左键) 1 表示中间的 ...
- php代码美化/格式化 还原 -问题
使用某个PHP代码格式化的工具.源代码: if ($this->_standardize_newlines == TRUE) { if (strpos($str, "\r") ...
- curl命令学习笔记
下载文件并保存为默认文件名 curl -O http://www.xxx.com/xxx.exe 下载文件并保存为指定文件名 curl -o filename.exe http://www.xxx.c ...
- Atitit.病毒木马的快速扩散机制原理nio 内存映射MappedByteBuffer
Atitit.病毒木马的快速扩散机制原理nio 内存映射MappedByteBuffer 1. Java NIO(New Input/Output)1 1.1. 变更通知(因为每个事件都需要一个监听者 ...
- 代码创建storyboard
代码创建storyboard方式如下 // 加载storyboard UIStoryboard *storyboard = [UIStoryboard StoryboardWithName:@&quo ...
- IOS开发之开发者账号遇到的bug
今天使用开发者账号过期的问题,文件显示 其实今天的问题和这个没有关系,即使上面显示此证书的签发者无效,有时候也是可以用的. 我这里情况比较奇葩,刚刚生成的开发者账号,显示还是"......无 ...
- Tomcat+Nginx+Lvs部署方案与性能调优
立项要求:用户登录并发数达到1000vuser.原项目设计没有Nginx和LVS,经过性能测试并发数最高到400,就报响应超时,且系统资源消耗严重.经过和架构师商议决定先加入Nginx解决负载均衡处理 ...
- CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)
继上一版本V1.3版本发布到现在,时隔N天了:[V1.3版本开源见:CYQ.Data 轻量数据层之路 华丽V1.3版本 框架开源] N天的时间,根据各路网友的反映及自身的想法,继续修改优化着本框架,力 ...
- VS.net 2013中使用Git建立源代码管理 版本管理
第一次在VS2013中使用Git,也是第一次使用Git,各种不熟悉.百度各种使用经验,大都不屑于使用VS2013集成的Git,建议下载这个下载那个,我也照学了,确实能实现项目的提交.同步.合并的工作, ...