码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 瑞吉外卖 —— 13、项目优化:YApi、Swagger、项目部署


    目录

    1、前后端分离开发

    1.1、介绍

    1.2、开发流程

    2、Swagger

    2.1、介绍

    2.2、使用

    2.2.1、导入依赖

    2.2.2、导入 knife4j 配置

    2.2.3、设置静态资源映射

    2.2.4、设置过滤器放行路径

    2.2.5、测试

    2.3、常用注解

    3、项目部署

    3.1、部署架构

    3.2、部署环境

    3.2、部署前端项目

    3.3、部署后端项目

    3.4、解决 Linux 下图片路径问题


    1、前后端分离开发

    1.1、介绍

    1.2、开发流程

    2、Swagger

    2.1、介绍

    2.2、使用

    2.2.1、导入依赖

    1. <dependency>
    2. <groupId>com.github.xiaoymingroupId>
    3. <artifactId>knife4j-spring-boot-starterartifactId>
    4. <version>3.0.2version>
    5. dependency>

    2.2.2、导入 knife4j 配置

    在 WebMvcConfig 类上加上两个注解

    1. @EnableSwagger2
    2. @EnableKnife4j

    然后添加两个方法

    1. @Bean
    2. public Docket createRestApi() {
    3. // 文档类型
    4. return new Docket(DocumentationType.SWAGGER_2)
    5. .apiInfo(apiInfo())
    6. .select()
    7. .apis(RequestHandlerSelectors.basePackage("com.itheima.reggie.controller"))
    8. .paths(PathSelectors.any())
    9. .build();
    10. }
    11. private ApiInfo apiInfo() {
    12. return new ApiInfoBuilder()
    13. .title("瑞吉外卖")
    14. .version("1.0")
    15. .description("瑞吉外卖接口文档")
    16. .build();
    17. }

    2.2.3、设置静态资源映射

    在 WebMvcConfig 类的 addResourceHandlers 配置静态资源映射

    1. registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
    2. registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");

    2.2.4、设置过滤器放行路径

    在 LoginCheckFilter 类的 doFilter 方法添加放行路径

    1. // knife4j 放行路径
    2. "/doc.html",
    3. "/webjars/**",
    4. "/swagger-resources",
    5. "/v2/api-docs"

    2.2.5、测试

    在浏览器访问 http://localhost:8080/doc.html ,可以看到接口文档

    2.3、常用注解

    3、项目部署

    3.1、部署架构

    3.2、部署环境

    192.168.44.128:主从复制的主库、redis、nginx

    192.168.44.127:主从复制的从库

    3.2、部署前端项目

    ① 将资料中前端打包后的文件 dist 传到 nginx 根目录下的 html 目录

    ② 修改 nginx.conf

    1. server{
    2. listen 80;
    3. server_name localhost;
    4. location / {
    5. root html/dist; # 根目录
    6. index index.html; # 默认首页
    7. }
    8. # 反向代理
    9. location ^~ /api/ {
    10. rewrite ^/api/(.*)$ /$1 break; # rewirte:重写url,将 /api/ 除去
    11. proxy_pass proxy_pass http://192.168.44.128:8080;
    12. }
    13. error_page 500 502 503 504 /50x.html;
    14. location = /50x.html{
    15. root html;
    16. }
    17. }

    3.3、部署后端项目

    ① 在服务器安装 jdk、git、maven、MySQL,使用 git 将项目克隆下来

    git clone http://...

    然后使用 maven 将项目打包

    mvn clean package -Dmaven.test.skip=true

    ② 将资料中的 reggieStart.sh 自动部署脚本导入,这里稍作修改,将这里的目录改为自己存放的位置

    1. echo 准备从Git仓库拉取最新代码
    2. cd /usr/local/javaapp/reggie

    然后授予能够执行 sh 脚本的权限

    chmod 777 reggieStart.sh

    ③ 执行 sh 脚本文件

    ./reggieStart.sh

    若这里每次从 git 拉取代码都需要输入账号密码,可以输入下面的命令

    git config --global credential.helper store

    3.4、解决 Linux 下图片路径问题

    在 application.yml 中将图片路径修改为可用路径

    1. reggie:
    2. path: /usr/local/javaapp/reggie_img

    然后将图片上传到该路径即可

  • 相关阅读:
    软件测试内卷严重,如何提升自己的竞争力呢?
    泰克Tektronix示波器软件TDS210|TDS220|TDS224上位机软件NS-Scope
    证照之星XE7下载安装详细教程
    java基础之成员与局部变量以及this与static关键字[15]
    [BUG历险记] ERROR: [SIM 211-100] CSim failed with errors
    208. 实现 Trie (前缀树)
    USACO Guide银组3. 自定义比较器和坐标压缩
    你不得不知的MYSQL优化——索引下推
    正则表达式
    瑞芯微RK3568|SDK开发之Buildroot编译
  • 原文地址:https://blog.csdn.net/Mr_zhangyj/article/details/126936381
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号