# jaguar **Repository Path**: Wilson_Lws/jaguar ## Basic Information - **Project Name**: jaguar - **Description**: jaguar是基于springboot + springcloud + alibaba cloud的微服务开发框架 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 32 - **Forks**: 6 - **Created**: 2019-04-17 - **Last Updated**: 2025-12-31 ## Categories & Tags **Categories**: backend **Tags**: None ## README # 欢迎使用jaguar框架 ## 框架简介 #### jaguar是基于springboot + spring cloud + alibaba cloud的微服务开发框架 - 核心框架:Spring Boot + Spring Cloud + Alibaba Cloud + MyBatis-Plus - 注册中心:Nacos - 配置中心:Nacos Config - 服务监控:Spring Boot Admin - 微服务调用:Openfeign - 安全框架:Spring Security + Spring Authorization Server + OAuth2 - 缓存管理:Redis - 数据库连接池:Druid - 任务调度:Xxl-Job - 消息中间件:Rabbitmq - 消息推送:Websocket - Web容器:Undertow - 接口文档:Swagger + Knife4j + Springdoc - 日志打印:Logback - 数据库:PostgreSQL - 模板引擎:Apache Velocity - 验证码:Captcha - 表达式解析:Aviator ## 代码结构 #### jaguar由五大模块组成,分别是微服务模块、代码生成模块、通用工具模块、启动器模块、扩展增强模块 - jaguar-cloud:微服务模块 - jaguar-configuration:通用默认配置 - jaguar-face-comparison:人脸识别服务 - jaguar-gateway:网关服务 - jaguar-handler-log:接口日志服务 - jaguar-monitor:服务监控 - jaguar-upms:授权服务与用户权限管理服务 - jaguar-websocket:消息推送服务 - jaguar-codegen:代码生成模块 - jaguar-commons:通用工具模块 - jaguar-commons-aviator:表达式解析组件 - jaguar-commons-encryption:数据加密组件 - jaguar-commons-pdf:pdf生成组件 - jaguar-commons-pinyin:汉语拼音组件 - jaguar-commons-qrcode:二维码生成组件 - jaguar-dependencies:框架通用版本 - jaguar-starter:启动器模块 - jaguar-stater-cloud-client:微服务启动器 - jaguar-starter-job-executor:任务执行器启动器 - jaguar-starter-mybatis-plus:持久层启动器 - jaguar-starter-oauth2-client:OAuth2客户端启动器 - jaguar-starter-openfeign:微服务接口调用启动器 - jaguar-starter-rabbitmq:rabbitmq消息启动器 - jaguar-starter-redis:redis启动器 - jaguar-starter-security:安全框架启动器 - jaguar-starter-velocity-engine:模板引擎启动器 - jaguar-starter-web:web启动器 - jaguar-support:扩展增强模块 - jaguar-data-modify-log:数据修改日志 - jaguar-data-permission:部门数据权限 - jaguar-easy-crud:基础增删改查 - jaguar-export-csv:csv流式导出 - jaguar-interactive-captcha:验证码 - jaguar-multi-tenancy:多租户数据隔离查询 - jaguar-oauth2-resource-server:OAuth2资源服务 - jaguar-redis-secondary-cache:redis二级缓存 ## 开发环境搭建 1. 使用[middleware](https://gitee.com/Wilson_Lws/middleware) 快速搭建 postgres、redis、nacos、rabbitmq 2. 修改 **hosts** 文件,添加域名解析 ``` 127.0.0.1 postgres 127.0.0.1 redis 127.0.0.1 rabbitmq 127.0.0.1 jaguar-register 127.0.0.1 jaguar-monitor 127.0.0.1 sentinel 127.0.0.1 xxl-job-admin ``` 3. 打开 **nacos** 控制台 http://localhost:8848/nacos ,创建命名空间、用户、角色、授权 - 命名空间,新建命名空间,命名空间ID,命名空间名,描述均为 jaguar - 权限控制-用户列表,创建用户,用户名 jaguar,密码 Aa123456 - 权限控制-角色管理,创建角色,角色名 jaguar,选择用户 jaguar - 权限控制-权限管理,添加权限,角色名选择 jaguar,资源选择 jaguar,动作选择读写 4. 创建 **jaguar_upms** 数据库,导入表结构及初始化数据:[jaguar/jaguar-cloud/jaguar-upms/db/schema.sql](jaguar-cloud/jaguar-upms/db/schema.sql) 5. 启动 [jaguar/jaguar-cloud](jaguar-cloud) 下的各个微服务 6. 下载 [jaguar-upms-ui](https://gitee.com/Wilson_Lws/jaguar-upms-ui) 前端页面 ```shell cnpm install cnpm run serve ``` ## 微服务部署 1. 顺序执行 **开发环境搭建** 的第 **1、3、4** 条 2. 在服务器上创建 **jaguar** 目录,并上传 [jaguar/jaguar-cloud/docker-compose.yml](jaguar-cloud/docker-compose.yml) 3. 在 **jaguar** 目录下执行命令 `docker-compose up -d` ## nginx代理(可选) 第四步的服务部署完成后,前端的静态文件会交给 **jaguar-gateway** 网关来代理,如果需要使用 **nginx** 来代理,则可以通过以下操作来完成 1. 打开 **nginx** 控制台:**http://localhost:18080** ,创建管理员账号并登录 2. 配置反向代理,ip为空,端口80,添加代理目标,**${jaguar-gateway-host}** 为微服务网关IP | 监控路径 | 代理类型 | 代理目标 | | ---------- | -------- | ----------------------------------------------------------------- | | /api/ | 动态http | http://${jaguar-gateway-host}:8080/ | | /websocket | 动态http | http://${jaguar-gateway-host}:8080   **开启websocket** | | /静态html | 静态html | root模式   **/home/nginxWebUI/static/** | 3. 启动配置,替换文件,重新装载 4. 将 **jaguar/static** 目录下的所有文件移动至 **middleware/nginxWebUI/static** 目录下 ## 代码生成服务部署 1.创建 **jaguar_codegen** 数据库,导入[表结构及基础数据](jaguar-codegen/db/schema.sql) 2.使用 [jaguar-codegen/docker-compose.yml](jaguar-codegen/docker-compose.yml) 启动服务