代码地址: [https://gitee.com/zuihou111/zuihou-admin-boot](https://gitee.com/zuihou111/zuihou-admin-boot) zuihou-admin-boot 是 zuihou-admin-cloud项目的单体架构版,即去除了 微服务相关组件(nacos、zuul、gateway、hystrix、ribbon等)但在业务功能与项目结构上,尽可能的与zuihou-admin-cloud保持了一致。由于去除了nacos作为配置中心, 所以项目的配置文件都放在application.yml里面。 由于本项目的前端项目同时支持 zuihou-admin-cloud 和 zuihou-admin-boot 2 个项目,但前者由于多了一个网关服务,所以在请求 URI 上比后者多了一段 网关的 URI(比如,同样是获取验证码的接口, 在者的地址:/api/authority/anno/captcha, 后者:/anno/captcha)。所以想要前端项目尽可能少的改动代码,需要通过 nginx 或者 vue 的 uri 代理功能(但 uri 代理只能在开发环境使用) 下面说`boot项目`或者`boot版本`即 zuihou-admin-boot, `cloud项目`或`cloud版本` 即 zuihou-admin-cloud。 # 1,配置修改 ~~~ zuihou: nginx: # nginx 相关配置 修改成自己的 ip: 127.0.0.1 # 正式环境请用公网ip,有域名的用域名! port: 10000 redis: # redis 相关配置 修改成自己的 ip: 127.0.0.1 port: 16379 password: SbtyMveYNfLzTks7H0apCmyStPzWJqjy mysql: # mysql 相关配置 修改成自己的 ip: 127.0.0.1 port: 3306 driverClassName: com.mysql.cj.jdbc.Driver database: zuihou_defaults # 默认库,启动时链接 username: root password: root database: bizDatabase: zuihou_boot # 业务库前缀 (注意,zuihou-admin-boot 项目的租户库为zuihou_boot_0000) multiTenantType: SCHEMA # 租户模式 worker-id: 0 data-center-id: 0 file: storage-path: /data/projects/uploadfile/file/ # 文件存储路径,改成window的路径 ~~~ # 2,编译项目 `clean install ` ![](https://img.kancloud.cn/13/02/1302eadb9e94c05bd2223dfa43bb61c8_3052x2044.png) # 3,启动 zuihou-admin-boot 项目 # 4,配置nginx (第4、5步和 第6步请选择其中一种方式,千万不要2种方式同时使用) > 注意, 为了使boot和cloud共用同一个前端项目,且不修改任何代码, boot项目开发过程需要使用nginx来 改写请求地址。 window 版本的 nginx (配置文件已经修改正确) 下载地址: 1, 群文件里面下载 2,或者 百度云下载 链接: https://pan.baidu.com/s/1t9GU1npsxIIdF3qXoOrpLw 提取码: 23a9 ~~~ server { listen 8760; server_name localhost; underscores_in_headers on; # boot版本跟cloud 版本的区别在此, 8764为 zuihou-authority-server 项目启动的端口 # cloud 版本的网关做了以下配置 location /api/oauth/ { proxy_pass http://192.168.1.34:8760/; } location /api/authority/ { proxy_pass http://192.168.1.34:8760/; } location /api/file/ { proxy_pass http://192.168.1.34:8760/; } location /api/msgs/ { proxy_pass http://192.168.1.34:8760/; } location /api/gate/{ proxy_pass http://localhost:8760/; } location /api/gate/{ proxy_pass http://localhost:8760/; } # 用于访问打包后的 zuihou-ui项目 location /zuihou-ui { proxy_set_header Host $host:$server_port; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; root /data/projects/; index index.html; } # 文件访问配置 location ^~ /file { if ($request_uri ~* ^.*\/(.*)\.(apk|java|txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|jpg|png)(\?fileName=([^&]+))$) { add_header Content-Disposition "attachment;filename=$arg_attname"; } root /data/projects/uploadfile; index index.html; } } server { listen 180; server_name localhost; underscores_in_headers on; # 用于访问打包后的 zuihou-admin-ui项目 location /zuihou-admin-ui { proxy_set_header Host $host:$server_port; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; root /data/projects/; index index.html; } } ~~~ # 5, 启动nginx (第4、5步和 第6步请选择其中一种方式,千万不要2种方式同时使用) 双击nginx.exe # 6,配置vue 代理 (第4、5步和 第6步请选择其中一种方式,千万不要2种方式同时使用) - 修改 vue.config.js ``` proxy: { [proxyUrl]: { target: targetUrl, changeOrigin: true, pathRewrite: { // zuihou-admin-cloud 项目使用这段配置 // ['^' + proxyUrl]: proxyUrl // zuihou-admin-boot 项目 请使用以下的配置 ['^/api/oauth']: '/', ['^/api/authority']: '/', ['^/api/file']: '/', ['^/api/msgs']: '/', ['^/api/gate']: '/', ['^/api/tenant']: '/', } } } ``` - 修改.env.development ``` # SpringCloud项目使用这个地址 # VUE_APP_DEV_REQUEST_DOMAIN_PREFIX = 'http://127.0.0.1:8760' # SpringBoot 项目使用这个地址 VUE_APP_DEV_REQUEST_DOMAIN_PREFIX = 'http://127.0.0.1:8764' ``` # 7,启动前端项目zuihou-admin-ui 和 zuihou-ui `npm run dev` # 8,访问: ui: http://localhost:8080 ui: http://localhost:8081 swagger: http://localhost:8764/doc.html