作为一个程序员,工作之外的不断学习是必须的。这个项目是我个人课外学习和练手的项目。最开始是一个个人网站。当时发现京东云可以免费部署网站的,就立即写了一个网站,当时就使用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. 博客主页显示

2. 博客内容显示

3. 全文检索

二. 后台效果展示

1. 登录

2. 后台主页

3. 写博客功能

4. 博客管理

5. 添加博客类别等等

三. 爬虫

一、Java多人博客系统-开篇的更多相关文章

  1. 四、Java多人博客系统-2.0版本

    由于时间关系,多人博客系统这里穿插一个2.0版本. 2.0版本本来是打算用于建立个人网站,但是后来发现个人建站需要购买域名服务器,还需要备案,很繁琐.最终放弃.完成此版本,最终也只是作为技术演练.此版 ...

  2. 三、Java多人博客系统-技术架构

    多人博客系统1.0版本,架构和技术还是很简单和很传统的. 1.技术 前端:jsp.html.css.javascript.jquery.easyui.echarts 后端:spring mvc.Hib ...

  3. 二、Java多人博客系统-演变

    任何项目都是由小到大,逐步演变的.自己写的这个博客系统也不例外. 更新日志如下: 一.2014年底-2015年初 功能及技术: 1.定位为个人网站,介绍自己情况和发布文章等. 2.首页模块有:个人简介 ...

  4. 七、Java多人博客系统-2.0版本-docker部署

    docker是当下很热门的技术,是对之前的部署系统方式的彻底改变.之前部署系统,需要安装数据库.初始化数据库,安装jdk,配置jdk,部署应用程序,修改配置文件等,很繁琐.一般现场运维人员很难搞定,现 ...

  5. 五、Java多人博客系统-2.0版本-数据库设计

    数据库设计表如下:文章类别表.文章表.评论表.留言表. 文章列表表:存放文章类别,首页菜单生成也是从这个表取的. 文章表:存放文章标题.发表时间.内容等信息. 评论表:文章评论内容. 留言表:用户发表 ...

  6. 六、Java多人博客系统-2.0版本-代码实现

    1.前后端分离,后端使用spring boot,只负责提供数据,对外暴露Restful API.前端使用vue,只负责展示数据和向后台提交数据. 2.数据库使用mariadb,存储所有数据. 3.前端 ...

  7. 【完全开源】Django多人博客系统——支持MarkDown和tinyMce

    目录 说明 功能 如何使用 说明 这是一个用Django开发的多人博客系统,功能简单,但完全满足公司内部或个人的博客使用需求.支持普通富文本编辑器(tinyMCE)和MarkDown编辑器 由于嫌弃D ...

  8. Java程序员博客系统推荐!我调研了100来个 Java 开源博客系统,发现这 5 个最好用!

    大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 最近想倒腾一下博客,看了很多现成的比较成熟的开源博客系统,自己也简单从下面几个维度总结对比了一下: star数量 ...

  9. 推荐一款自研的Java版开源博客系统OneBlog

    OneBlog 一款超好用的Java版开源博客      Introduction 简介 OneBlog 一个简洁美观.功能强大并且自适应的Java博客.使用springboot开发,前端使用Boot ...

随机推荐

  1. Mysql数据库表被锁定处理

    1.查进程,查找被锁表的那个进程的ID show processlist; command 为waitting的就是锁住的表,info为执行某条语句的信息,id为进程. 2.kill掉锁表的进程ID ...

  2. Winform下透明Panel

    网上很多写着透明Panel的方法,都是把BackColor属性设置为透明,然后指定Parent,实验了一下,对于部分情况下,是可用的,例如下层本身有自带的控件,但是,如果是用Graphic绘制的内容, ...

  3. 立足中国,走向世界(Made in China, Go to World)

    FineUI一路走来已经历经 9 年的风风雨雨,拥有国内最为广泛的捐赠群体(1500多位),和众多企业客户的青睐(200多家). 今天,我们很高兴的宣布:FineUI英文版上线了! FineUI英文版 ...

  4. Autofac踩坑经历

    背景 接口框架使用反射,动态生成Controller,使用Autofac进行依赖注入,并替换默认DependencyResolver及IControllerFactory,Controller实例化代 ...

  5. 豆瓣读书爬虫(requests + re)

    前面整理了一些爬虫的内容,今天写一个小小的栗子,内容不深,大佬请忽略.内容包括对豆瓣读书网站中的书籍的基本信息进行爬取,并整理,便于我们快速了解每本书的中心. 一.爬取信息 每当爬取某个网页的信息时, ...

  6. 朱晔和你聊Spring系列S1E4:灵活但不算好用的Spring MVC

    阅读PDF版本 本文会以一些例子来展现Spring MVC的常见功能和一些扩展点,然后我们来讨论一下Spring MVC好用不好用. 使用SpringBoot快速开始 基于之前的parent模块,我们 ...

  7. Ubuntu Server 18.04 修改网路配置

    新的Ubuntu 服务器采用netplan管理网络配置,跟以前的配置有很大的区别. 实际可行的办法是修改/etc/netplan/01-netcfg.yaml文件: sudo vim /etc/net ...

  8. 重装mysql后导致Navicat连接失败

    今天重装了mysql数据库,然后再使用navicat去连接数据库的时候,一直报错 1251 Client does not support authentication protocol reques ...

  9. A-Text Reverse(文本反向读)

    多组数据测试,输入t,表示要测几个,每个语句反向输出. 链接 [https://cn.vjudge.net/contest/235390#problem/A] 解: 就是getchar()和gets( ...

  10. c++入门之再话命名空间的意义

    c++中使用了命名空间这一概念,通过下面这个代码,我们将深刻认识到命名空间的重要作用和意义: # include"iostream" using namespace std; na ...