{"id":14983003,"url":"https://github.com/flowingsun007/lyonblog","last_synced_at":"2025-07-19T16:08:03.124Z","repository":{"id":34518869,"uuid":"140984351","full_name":"Flowingsun007/LyonBlog","owner":"Flowingsun007","description":"基于Java8的SSM+Elasticsearch全文检索的个人博客系统","archived":false,"fork":false,"pushed_at":"2022-12-16T10:34:41.000Z","size":189442,"stargazers_count":188,"open_issues_count":13,"forks_count":71,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-08T21:27:24.832Z","etag":null,"topics":["elasticsearch","java","mybatis","mysql","nginx","redis","shrio","spring-mvc","springmvc","tomcat","tomcat9","velocity"],"latest_commit_sha":null,"homepage":"http://www.flowingbit.com/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Flowingsun007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-14T23:20:52.000Z","updated_at":"2025-04-13T09:06:42.000Z","dependencies_parsed_at":"2023-01-15T07:33:31.559Z","dependency_job_id":null,"html_url":"https://github.com/Flowingsun007/LyonBlog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Flowingsun007/LyonBlog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowingsun007%2FLyonBlog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowingsun007%2FLyonBlog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowingsun007%2FLyonBlog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowingsun007%2FLyonBlog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Flowingsun007","download_url":"https://codeload.github.com/Flowingsun007/LyonBlog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowingsun007%2FLyonBlog/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265960854,"owners_count":23855986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elasticsearch","java","mybatis","mysql","nginx","redis","shrio","spring-mvc","springmvc","tomcat","tomcat9","velocity"],"created_at":"2024-09-24T14:06:33.897Z","updated_at":"2025-07-19T16:08:03.076Z","avatar_url":"https://github.com/Flowingsun007.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 【概述】\n这是在第一版的【个人博客系统】 的基础上开发的第二版个人博客系统，基于SSM框架的Java8、Maven构建，github地址:https://github.com/Flowingsun007/LyonBlog\n这个项目是个人学java时自己做的，从前端-到后端-数据库都是100%原创的~第一版的项目是jsp+servlet写的，学了SSM后重构了一次才有的这个项目，里面代码写的比较水，勿喷~新人学习玩耍还是可以的~P.S.后面有时间会不断重构和优化里面的代码^_^\n## 1.项目展示\n### 【页面】：\n![](https://pic3.zhimg.com/v2-8938aa61be97b55c37009744c761a44a_r.jpg)\n![](https://pic3.zhimg.com/v2-cdc3a4b107a010dc54203b33bfc50176_r.jpg)\n![](https://pic2.zhimg.com/v2-5f1e438570a24223d22356e0e48c91ed_r.jpg)\n### 【功能】：\n用户登录注册、MD5加密、邮箱验证。\n博客文章前台展示、文章点赞、评论、收藏，支持对评论进行点赞和讨论。\n后台admin管理，支持文章的新增、修改、删除、文章和标签批量管理。\n个人中心，查看收藏的文章、用户上传图片、照片墙。\n## 2.技术栈\n#### 开发环境：\nmacOS/Win10系统+Idea开发+Maven构建+Git版本控制\n#### 前端：\nhtml+css+javascript;bootstrap+jquery+ajax;\n#### 模板引擎：\nvelocity\n#### 开源弹框组件：\nsweetalert\n#### Markdown编辑器：\nEditor.md\n#### 容器：\nTomcat9\n#### 权限：\nApache Shrio\n#### 后端：\nSpring+SpringMVC+Mybatis+Mysql+Druid\n#### 缓存+session管理：\nRedis。由于2个Tomcat可能部署在不同的服务器上，故涉及到session共享的问题，此处用redis来管理所有session,同时redis兼缓存一些文章分类信息、标签信息等。\n#### 反向代理+动静分离：\nNginx。Nginx作为统一入口，静态资源请求如js、图片、css文件等直接由nginx处理，动态请求转发至Tomcat中处理。\n目前配置了2个Tomcat，Nginx采取默认的轮训处理请求。\n#### 全文检索：\nElasticSearch是流行的全文检索服务器，主要用于博客搜索。Logstash设定了简单的增量导入，从Mysql中定时查询文章内容放入Elasticsearch中，从而提供博客文章全文检索的功能，避免直接查数据库带来较大的开销。\n#### 架构图：\n![](https://pic3.zhimg.com/80/v2-72fae8ab4a314f253d214dcb3f70d80e_hd.jpg)\n## 3.项目部署\n由于主项目是在Mac上开发的，所以对Linux系统比较友好。Github地址：Flowingsun007/LyonBlog ，欢迎点赞~\n### 【分支】：\n* master：本地mac上开发，同步更新的分支\n* centOS：用于在阿里云服务器上的分支，基本和master分支类似，有个别配置如jdbc.properties、log4j.properties、EmailService.java(发送注册邮件)有些许不同\n* windows：仅仅是为了跑起来而新建的此分支，不保证及时更新。BTW:我发现mac上看的前端效果比较好看，到windows上就比较丑了....我也很无奈~\n### 【项目标准配置】：\n* 0.JDK1.8\n* 1.Mysql5.7\n* 2.Tomcat9(2个)\n* 3.Nginx1.14.0\n* 4.Redis4.0.10\n* 5.Elaticsearch、Logstash——6.4.2\n#### Mysql配置\n* a.数据库连接：resources文件夹下的jdbc.properties\n* b.数据库的sql包括ddl和dml，放在项目resources文件夹下。\n#### Tomcat配置\n只需要改server.xml文件中的几个地方即可，这里提供我本地的配置文件做参考。\n#### log4j配置\n主要是log4j.properties里修改几种类别日志存放路径\n#### Nginx、Redis配置\n同样，提供本地参考，所有的关键配置文件都放在resources/conf文件夹下。\n#### 静态资源配置\n由于项目用的是Nginx，动静分离的，所以静态资源全部放置在Nginx下的html文件夹下，可以在百度网盘下载：\n链接：https://pan.baidu.com/s/1K2Ahz_L4cYR04YtgdCmSGA \n提取码：bdbb \n### 【启动和运行】\n#### 项目启动标准配置：\nNginx+Redis+2个Tomcat+Elasticsearch+Logstash\n#### 项目启动最简配置：\nNginx+Redis+1个Tomcat\n#### 启动顺序：\n首先安装好Mysql，Mysql的表和数据建好、安装和配置Tomcat、Nginx、Redis，然后就可以启动了。\nNginx和Redis先启动，然后启动Tomcat，在Idea中可以直接启动Tomcat、或者手动打war包放入Tomcat中运行。\n##### Tomcat启动完成后再启动Elasticsearch+logstash。Elasticsearch+logstash是可选项，可以不启动。\n### 【文件夹结构】\n![](https://pic1.zhimg.com/80/v2-a95cec3239527b265b191c368e888e04_hd.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowingsun007%2Flyonblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflowingsun007%2Flyonblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowingsun007%2Flyonblog/lists"}