# uum **Repository Path**: noobcc/uum ## Basic Information - **Project Name**: uum - **Description**: UUM博客 是一个基于微服务架构的前后端博客系统。后端使用 SpringCloud + SpringBoot + Mybatis-plus进行开发,使用 Jwt + Spring Security OAuth2 做登录验证和权限校验,使用 ElasticSearch 全文检索服务,使用 RabbitMq消息推送服务。前端使用 Vue + ElementUi 。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: http://www.uumblog.club/ - **GVP Project**: No ## Statistics - **Stars**: 19 - **Forks**: 1 - **Created**: 2022-03-29 - **Last Updated**: 2025-05-19 ## Categories & Tags **Categories**: blog **Tags**: None ## README # UUM博客 [在线预览](#在线预览)|[前言](#前言) |[项目简介](#项目简介) | [项目特色](#项目特色) | [项目目录](#项目目录) | [项目预览](#项目预览) |[项目启动](#项目启动) ## 在线预览 > 【演示账号】:uum2022 > > 【演示密码】:123456 | | 地址 | | ---------------- | -------------------------- | | 博客门户 | http://uumblog.club/ | | 博客后台管理系统 | http://admin.uumblog.club/ | ## 前言 UUM博客系统是我去年的毕业设计,当时使用的是SpringBoot + Vue的技术。后来想学习当前主流,就将其改造成微服务架构,也可以说是我用来熟悉技术的一个项目。架构和需求都是我自己一步一步想出来并开发到最后,其中很多技术都是一边学习一边使用的,所以很多地方可能考虑不周,觉得有问题,可以自己重新设计一下。 ## 项目简介 [UUM博客](https://gitee.com/noobcc/uum) 是一个基于**微服务架构**的前后端博客系统。后端使用 **SpringCloud** + **SpringBoot** + **Mybatis-plus**进行开发,使用 **Jwt** + **Spring Security OAuth2** 做登录验证和权限校验,使用 **ElasticSearch** 全文检索服务,使用 **RabbitMq**消息推送服务。前端使用 **Vue** + **ElementUi** 。 ## 项目特色 - 项目使用皆是当前主流的技术栈,无过度自定义封装,易理解学习和二次扩展; - **SpringBoot**、**SpringCloud** 一站式微服务开箱即用的解决方案; - **Spring Security OAuth2** 、 **Spring Cloud Gateway** 、 **JWT** 统一认证鉴权和常用 OAuth2 授权模式扩展; - **Nacos**作为服务发现和配置中心 - 微服务聚合**Swagger**文档并集成**Knife4j**,统一的接口管理; - **RabbitMQ** 消息队列,用于邮件发送以及配合**WebSocket**实现文章实时将发布的文章推送给在线用户; - **ElasticSearch**作为全文检索服务及搜索时自动补全; - 阿里云**OSS**对象存储; - **RBAC** 权限管理设计,灵活的权限控制,按钮级别的细粒度权限控制,满足绝大部分的权限需求; > xxx-api:提供其他微服务调用本服务的接口 > > xxx-boot : 本服务的核心业务 ``` uum ├── uum-admin -- 系统服务 └── admin-api └── admin-boot ├── uum-auth -- 认证服务 └── auth-api └── auth-boot ├── uum-blog -- 博文服务 └── blog-api └── blog-boot ├── uum-commons └── common-aop -- AOP切面,用于记录系统内的操作日志 └── common-core -- 封装公用模块 └── common-mybatis-plus -- Mybatis-Plus相关的配置 └── common-redis -- redis相关的配置 └── common-web -- web端相关的配置,如全局异常处理、常用工具类等 ├── uum-gateway -- 网关 ├── uum-mq -- 消息服务 └── mq-api └── mq-boot ├── uum-oss -- 对象与存储服务 └── oss-api └── oss-boot ├── vue-uum-admin -- uum博客后台管理(前端) ├── vue-uum-door -- uum博客门户(前端) ``` ## 项目预览 ## 项目启动 ### 后端启动 #### 本地启动 1. **中间件安装(🔴必装 ⚪可选)** - 🔴MySQL 5.7 - 🔴Redis - 🔴ElasticSearch 7.4.2 - ⚪RabbitMQ (不安装使用不了消息推送和注册时邮件发送) 2. **数据库创建和数据初始化** 进入 `docs/sql` 目录 - **系统数据库** 执行 `uum-blog.sql` 、`uum.sql` 完成数据表的创建和数据初始化。 - **Nacos 数据库** 执行 `nacos_config.sql` 脚本完成 Nacos 数据库初始化。 3. **Nacos 配置和启动** - **Nacos 配置持久化至 MySQL** 进入Nacos的conf目下配置文件`application.properties` ```properties spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password.0=123456 ``` - **启动Nacos** 切换到 Nacos 的 bin 目录,执行 `startup -m standalone` 启动 Nacos 服务。 - **导入Nacos配置** 打开浏览器,地址栏输入 Nacos 控制台的地址 [ http://localhost:8848/nacos]( http://localhost:8848/nacos) ; 输入用户名/密码:nacos/nacos ; 进入控制台,点击左侧菜单 `配置管理` → `配置列表` 进入列表页面,点击 `导入配置` 选择项目中的 `docs/nacos/DEFAULT_GROUP.zip` 文件。 - **修改Nacos配置** 在 Nacos 控制台配置列表选择共享配置 `uum-common.yaml` 进行编辑,修改 MySQL、Redis、RabbitMQ等中间件信息为您自己本地环境,默认线上环境。 - **修改Nacos配置中心地址** 批量替换应用的 bootstrap-dev.yml 文件的配置中心地址 `http://localhost/8848` ,默认线上的配置中心地址。 4. **创建Elasticsearch索引** 进入`docs/elasticsearch` 在kibana依次执行blog-info和blog-search-suggest文件 5. **服务启动** - 进入 `uum-gateway` 模块的启动类 GatewayApplication 启动网关; - 进入 `uum-auth` 模块的启动类 AuthApplication 启动认证授权中心; - 进入 `uum-admin` → `admin-boot` 模块的启动类 AdminApplication 启动系统服务; - 随后依次启动`blog-admin` , `mq-admin`, `oss-amdin` 启动方式和 `uum-admin` 一致; - 访问接口文档地址测试: [http://localhost:10000/doc.html](http://localhost:10000/doc.html) ### 前端启动 1. 本机安装 Node 环境 2. npm install 3. npm run dev ## 参考 在开发的时候参考的开源项目 [蘑菇博客](https://gitee.com/moxi159753/mogu_blog_v2) [有来商城](https://gitee.com/youlaitech/youlai-mall) [mall](https://gitee.com/macrozheng/mall)