# afc-project **Repository Path**: bool-wang/afc-project ## Basic Information - **Project Name**: afc-project - **Description**: 基于nacos、springcloud、mysql、vue等技术实现的一个微服务脚手架项目。 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: v1.0.0 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 1 - **Created**: 2021-03-05 - **Last Updated**: 2022-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # afc-project ## 介绍 基于nacos、springcloud、mysql、vue构建的一个微服务后端管理系统的脚手架项目。 [项目安装详细教程](./doc/项目安装详细教程.md) ## 软件架构 ### 后端 注册中心:nacos 配置管理:nacos 服务网关:spring-cloud-gateway 服务调用:open-feign 定时任务:quartz 缓存数据库:redis 数据库:mysql 接口文档: swagger 服务链路追踪: zipkin ### 前端 vue #### 已完成模块 登录服务:afc-webapi-auth 主要功能是提供系统用户登录鉴权功能 用户登录接口 退出登录接口 系统管理:afc-webapi-sys 主要提供系统的基本维护功能,包含如下模块 用户管理相关接口 菜单管理相关接口 角色管理相关接口 部分登录用户数据获取接口 ##### 定时任务管理:afc-webapi-task 主要提供对quartz框架的管理功能,实现了基本的任务停止、启动、新增等功能。 ##### 流程引擎:afc-webapi-activity ``` 集成activity7作为项目流程引擎,bpmn文件编辑、流程部署等。未完成:启动流程、任务拾取、完成任务等流程推动接口 ``` ### 计划开发模块 **此处待补充** ### 安装系统依赖环境 安装分为两个部分 #### 一 基础环境搭建 nacos mysql redis zipkin-server #### 二 开发环境搭建 1. ide: 按个人开发习惯选择即可 jdk maven nodejs vue ### 使用说明 在进行这一步之前,请一定检查 <安装系统依赖环境> 步骤中相应的服务是否都安装成功,避免后面出现问题 #### 1. 配置文件相关 ##### 1.1 nacos配置文件创建 搭建好nacos服务之后,请到nacos管理页面添加配置文件。 需要注意的是,配置文件的命名空间和dataid。 命名空间的名字会在项目的启动参数中体现,用于nacos的配置和各个环境的对应,比如prd、uat、dev等。配置方式为默认的--spring.profiles.active=dev dataid默认为项目名,配置文件中为${spring.application.name}。 ###### 系统配置文件说明 afc.server.swagger -- swagger服务开发人信息配置 title: 服务名 description: 备注 version: 版本 contactName: 作者名 url: 地址 email: 邮箱 afc.server.auth -- 登录相关配置 tokenExprie: token过期时间 afc.server.encrypt -- 加密相关配置,位于公用配置文件 webapi-base.yaml文件中 rsa: publicKey: rsa公钥 privateKey: rsa私钥 aes: encryptKey: aes密码 encryptIv: aes偏移量 afc.server.gataway -- 网关自定义配置 noneAuthUrls: 不鉴权地址列表 下面列出几个web项目的配置文件,请根据需要自行修改 ###### dataid: webapi-auth.yaml ```yaml afc: server: swagger: title: auth-service description: 登录、鉴权、token等服务 version: 1.0.0 contactName: 王枫 url: email: auth: tokenExpire: 3600 spring: redis: host: ${REDIS_HOST} port: ${REDIS_PORT} password: ${REDIS_PASSWORD} ``` ###### dataid: webapi-gateway.yaml ```yaml afc: server: gateway: noneAuthUrls: - /afc/auth/login - /afc/auth/logout spring: redis: host: ${REDIS_HOST} port: ${REDIS_PORT} password: ${REDIS_PASSWORD} cloud: gateway: routes: - id: auth-service uri: lb://webapi-auth predicates: - Path=/afc/auth/** - id: sys-service uri: lb://webapi-sys predicates: - Path=/afc/sys/** - id: task-service uri: lb://webapi-task predicates: - Path=/afc/task/** - id: wfl-service uri: lb://webapi-activity predicates: - Path=/afc/wfl/** httpclient: connect-timeout: 60000 response-timeout: 5s ``` ###### dataid: webapi-sys.yaml ```yaml spring: datasource: url: ${DATASOURCE_URI} username: ${DATASOURCE_USERNAME} password: ${DATASOURCE_PASSWOED} redis: host: ${REDIS_HOST} port: ${REDIS_PORT} password: ${REDIS_PASSWORD} afc: server: aop: txEnabled: true txExecution: execution( * com.afc.webapi.sys.services.impl..*.*(..) ) txTimeout: 30 swagger: title: 系统管理模块 description: 用户、角色、菜单管理 version: 1.0.0 contactName: 王枫 url: email: ``` ###### dataid: webapi-task.yaml ```yaml spring: datasource: jdbc-url: ${DATASOURCE_URI} username: ${DATASOURCE_USERNAME} password: ${DATASOURCE_PASSWOED} afc: server: aop: txEnabled: true txExecution: execution( * com.afc.webapi.task.services.impl..*.*(..) ) txTimeout: 30 swagger: title: 定时任务管理模块 description: 定时任务管理 version: 1.0.0 contactName: 王枫 url: email: ``` ###### dataid: webapi-activity.yaml ```yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver jdbc-url: ${DATASOURCE_URI} username: ${DATASOURCE_USERNAME} password: ${DATASOURCE_PASSWOED} afc: server: aop: txEnabled: true txExecution: execution( * com.afc.webapi.acitivity.services.impl..*.*(..) ) txTimeout: 30 swagger: title: 流程管理接口模块 description: 流程管理接口 version: 1.0.0 contactName: 王枫 url: email: ``` ###### dataid: webapi-base.yaml ```yaml afc: server: encrypt: rsa: publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjZgqGE4UaoJPxkQGtAEha4nPK0+ShErNs+AbC4HZnbSV0T9GmenB+knSz3hnBJTPJOWIriLdYcjrkhac0vV7OmvAkz57vF8e/kaoXc8WL5KTy43ZXNRMdXtE97cCGOCavk3QBHioduvSrzEKaDkeIVkUxE0g01xDyas97WoUYeQIDAQAB privateKey: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKNmCoYThRqgk/GRAa0ASFric8rT5KESs2z4BsLgdmdtJXRP0aZ6cH6SdLPeGcElM8k5YiuIt1hyOuSFpzS9Xs6a8CTPnu8Xx7+RqhdzxYvkpPLjdlc1Ex1e0T3twIY4Jq+TdAEeKh269KvMQpoOR4hWRTETSDTXEPJqz3tahRh5AgMBAAECgYAaPwbLuJD10PtSnyc0wcndh2hwGQ8tbFKT21dCsEl0nYyZnUSgyCQPwLisN63NX4ts9CG3unMw6tBY6rsL9qsmpMZmWPBlgjiTMZGrvNYxMPj6F7upQ1YJpgX/dBZevHpqvo2JcLqIJGsDSfRmCD4zu+mJGcxoyLSypG3w2s1AsQJBAN0ymK7+fvPtVRNgcyNW08j8VM7zWtehCnJApXKjHizdXhHnXhRi4Yso+Sfg/KBM156FTJM0Mmb/jyi5i1h30U0CQQC9G2naxCBoxQF1Y/JpoMpFF9kuUcor/7qlkErOScR7ajc+LjVngItq1kiQ4rKL9UrL5yqgYos53/CeNsjpBo3dAkBRlLahW/Wgq3jEM79jWkO0DfSNe02W16tNpjAfDrAzZdWrDsUxCaMbuxnhrmYeDRk9OvaaGBc6y6iWIZCWKWLFAkAVl5q3kutMayomeDoGm4hc6UMwCcC202VBYD9aXIvlt5QFMouAfOnuUfdJK8lNN73JmGSCmZ3iBtLXjdPU3521AkBjO81/uwAv/rKIdQMZ1DKUvY78djYICSdNSaxZ/mKAyTQd6bly1XwvuQyqwfGmR3dk2t6RvCT8hyxpc3RCDt2Y aes: encryptKey: TPfHMRc8ADzulZxB encryptIv: QVHAYOaMX90TcUwn ``` ##### 1.2 配置文件环境变量列表整理 | 变量名 | 默认值 | 注释 | | ---------------------- | ------------------------------------------- | ------------------------------------ | | APPLICATION_BASE_URL | 无 | 应用根路径 | | NACOS_SERVER_ADDR | localhost:8848 | nacos服务地址 | | spring.profiles.active | 无 | 应用当前运行环境 | | DATASOURCE_URI | 无 | jdbc数据库链接串, 可按个人习惯修改nacos配置 | | DATASOURCE_USERNAME | 无 | 数据库用户名 | | DATASOURCE_PASSWOED | 无 | 数据库密码 | | REDIS_HOST | localhost | redis服务地址 | | REDIS_PORT | 6379 | redis端口 | | REDIS_PASSWORD | 无密码请保留key,值为空 eg: REDIS_PASSWORD= | redis密码 | | ZIPKIN_SERVER | http://localhost:9411 | zipkin-server地址 `http://` 不能省略 | ##### 2. 执行sql脚本 项目现阶段有3个数据库。 分别创建 afc-activity afc-task afc-sys 三个数据库,并执行相应sql 具体sql文件请至 afc-project/sql/ 文件夹中提取。 ###### 2.1 afc-sys 系统基本维护管理库。用户、角色、菜单等。 ###### 2.2 afc-task 定时任务数据库。 ###### 2.3 前端应用启动 安装好`nodejs`、`vue`并clone项目后,打开cmd窗口,执行如下命令 ```shell cd 磁盘路径/afc-project/afc-dashboard/ npm install yarn -g yarn install ``` 等待项目安装完成后,通过`idea`打开项目中的`package.json`,点击编辑器上`dev:"vue-cli-service serve"`行上的绿色倒三角启动即可 ##### 3. 启动项目 ###### 3.1 启动参数配置 ```shell -DNACOS_SERVER_ADDR=nacos地址:端口 -Dspring.profiles.active=dev -DDATASOURCE_URI=jdbc数据库链接串, 可按个人习惯修改nacos配置 -DDATASOURCE_USERNAME=数据库用户 -DDATASOURCE_PASSWOED=数据库密码 -DREDIS_HOST=redis地址 -DREDIS_PORT=redis端口 -DREDIS_PASSWORD=redis密码 无密码请保留key -DAPPLICATION_BASE_URL=应用根路径 -Duser.home=nacos/ nacos缓存目录 -DZIPKIN_SERVER=http://192.168.230.100:9411 ``` ###### 3.2 启动后检查 启动前请检查各应用的环境变量是否配置完整 启动没有固定顺序,正常全部启动即可。 如所有应用正常启动,则表示正常。 启动完成后,通过网关尝试调用服务 http://localhost:8080/afc/auth/login swagger网关聚合接口文档地址 http://localhost:8080/doc.html 前端页面地址 http://localhost:9528