作为一个程序员,工作之外的不断学习是必须的。这个项目是我个人课外学习和练手的项目。最开始是一个个人网站。当时发现京东云可以免费部署网站的,就立即写了一个网站,当时就使用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. 为什么C++11引入了std::ref?

    C++本身有引用(&),为什么C++11又引入了std::ref? 主要是考虑函数式编程(如std::bind)在使用时,是对参数直接拷贝,而不是引用.如下例子: #include <f ...

  2. python五子棋

    以后不更新了,把以前的一些东西发出来. 这是一个命令行环境的五子棋程序.使用了minimax算法. 除了百度各个棋型的打分方式,所有代码皆为本人所撸.本程序结构与之前的井字棋.黑白棋一模一样. 有一点 ...

  3. java redis 分页查询数据

    package com.liying.tiger.test; import java.util.List; import org.springframework.context.Application ...

  4. C#使用Json.Net遍历Json

    StringBuilder builder=new StringBuilder(); builder.AppendLine("{"); builder.AppendLine(&qu ...

  5. Tomcat完美配置多个HOST主机,域名,SSL

    这里是Tomcat9版本,其它版本基本一致! 1.配置多个主机域名 1.打开conf文件夹下的server.xml 复制官方提供的HOST配置,修改为你的域名,appBase路径(相对路径) 2.新建 ...

  6. Centos7 安装 Redis

    关闭防火墙:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启 ...

  7. Python_迭代器和生成器的复习_38

    迭代器和生成器 迭代器: 双下方法:很少直接调用的方法,一般情况下,是通过其他方法触发的 可迭代的协议——可迭代协议 含有__iter__ 的方法 ('__iter__' in dir(数据)) 可迭 ...

  8. poj2226 Muddy Fields 填充棒子(二分匹配)

    参考博客:https://blog.csdn.net/liujc_/article/details/51287019 参考博客:https://blog.csdn.net/acdreamers/art ...

  9. 网工的Linux系统学习历程

    偶遇篇作为一名通过思科CCNP认证的网络工程师,专注于网络技术.但在日常的工作中,难免不接触到服务器,对于大多数服务器来说,鉴于稳定性等因素的考虑,基本使用的都是Linux系统,包括RHEL.Cent ...

  10. pandas数据清洗策略1

    Pandas常用的数据清洗5大策略如下: 1.删除 DataFrame 中的不必要 columns 2.改变 DataFrame 的 index 3.使用 .str() 方法来清洗 columns 4 ...