{"id":21388454,"url":"https://github.com/he0306/blog","last_synced_at":"2025-09-07T10:34:56.217Z","repository":{"id":159857654,"uuid":"583937070","full_name":"He0306/blog","owner":"He0306","description":"基于SpringBoot + Vue开发的前后端分离博客，采用SpringSecurity进行动态RBAC权限管理，ElasticSearch全文搜索，过滤不文明评论和图片，支持博客浏览，评论，友链，在线聊天，管理后台等功能。","archived":false,"fork":false,"pushed_at":"2024-10-17T04:03:02.000Z","size":10661,"stargazers_count":10,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-30T15:30:58.706Z","etag":null,"topics":["axios","echarts","elasticsearch","element-ui","mongodb","mybatis-plus","mysql","rabbitmq","redis","springboot2","springsecurity-jwt","vue","websocket"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/He0306.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-12-31T14:42:11.000Z","updated_at":"2025-05-22T05:04:28.000Z","dependencies_parsed_at":"2025-06-29T18:04:54.674Z","dependency_job_id":"381b5652-6673-46e0-a642-8fe096e26843","html_url":"https://github.com/He0306/blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/He0306/blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/He0306%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/He0306%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/He0306%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/He0306%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/He0306","download_url":"https://codeload.github.com/He0306/blog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/He0306%2Fblog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274026692,"owners_count":25209739,"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","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["axios","echarts","elasticsearch","element-ui","mongodb","mybatis-plus","mysql","rabbitmq","redis","springboot2","springsecurity-jwt","vue","websocket"],"created_at":"2024-11-22T12:17:57.779Z","updated_at":"2025-09-07T10:34:56.162Z","avatar_url":"https://github.com/He0306.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"#### 介绍\n基于SpringBoot + Vue开发的前后端分离博客，采用SpringSecurity进行动态RBAC权限管理，ElasticSearch全文搜索，支持博客浏览，评论，友链，在线聊天，管理后台等功能。\n\n#### 软件架构\nB/S架构，采用前后端分离技术\n\n\n#### 安装教程\n\n1、Java 项目一键启动\n\n2、前端项目先下载依赖 npm install\n\n3、博客前台启动 npm run dev\n\n4、博客后台启动 npm run serve\n\n5、将sql下的两个sql文件分别导入mysql和mongoDB中\n\n\n#### 技术介绍\n\n前端技术:Vue2 + Vuex + Vue - Router + Axios + Element - ui + Bootstrap + Echarts + JavaScript\n\n后端技术:SpringBoot + Jwt + MyBatisPlus + MySQL+ Redis + Swagger + Druid + SpringSecurity + ElasticSearch + WebSocket + RabbitMQ + OSS + MongonDB\n\n* 采用Markdown编辑器，写法简单\n\n* 使用SpringSecurity + Jwt实现RBAC权限模型，可进行动态分配权限\n\n* 接入百度API，实现过滤不文明评论文字和博客图片\n\n* OSS图片存储在阿里云\n\n* 使用AOP切入进行增加、修改、删除、批量删除日志记录\n\n* 实现了在线聊天功能\n\n* 评论数据存储在MogonDB数据库中\n\n* Redis和SpringCache进行整合，提高数据访问效率\n\n* 使用定时任务进行对Redis中的缓存数据进行删除\n\n* 使用搜索引擎ElasticSearch进行全文检索\n\n* 使用RabbitMQ保证MySQL数据库和ElasticSearch搜索引擎的数据同步\n\n* 使用异步线程池进行对浏览量更新操作\n\n* 接入QQ邮箱，验证码密码\n\n* ES中数据展示\n![输入图片说明](imgs/image21.png)\n\n#### 前台效果\n\n* 前台博客主页面\n![输入图片说明](imgs/image1.png)\n![输入图片说明](imgs/image2.png)\n\n* 文章详情页面\n![输入图片说明](imgs/image3.png)\n\n* 标签页面\n![输入图片说明](imgs/image18.png)\n\n* 友链页面\n![输入图片说明](imgs/image19.png)\n\n* 评论页面\n![输入图片说明](imgs/image4.png)\n\n* 输入敏感词评论效果\n![输入图片说明](imgs/image20.png)\n\n#### 后台效果\n\n* 登录页面\n![输入图片说明](imgs/image9.png)\n  \n* 首页\n![输入图片说明](imgs/image5.png)\n![输入图片说明](imgs/image6.png)\n\n* 友链管理\n![输入图片说明](imgs/image10.png)\n\n* 分类管理\n![输入图片说明](imgs/image11.png)\n\n* 标签管理\n![输入图片说明](imgs/image12.png)\n\n* 新增文章\n![输入图片说明](imgs/image13.png)\n\n* 文章列表\n![输入图片说明](imgs/image7.png)\n\n* 日志管理\n![输入图片说明](imgs/image14.png)\n\n* 角色管理\n![输入图片说明](imgs/image15.png)\n\n* 分配权限\n![输入图片说明](imgs/image8.png)\n\n* 菜单管理\n![输入图片说明](imgs/image16.png)\n\n* 用户管理\n![输入图片说明](imgs/image17.png)\n\n#### 可加QQ询问\nQQ：2740860037\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhe0306%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhe0306%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhe0306%2Fblog/lists"}