瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件

整理记录下学习整个瑞吉外卖项目,详细代码可在我的Gitee仓库瑞吉外卖实战克隆下载学习使用!

5. 前后端分离开发

5.1 问题

瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第1张图片

5.2 前后端分离开发

5.2.1 介绍

瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第2张图片

5.2.2 开发流程

瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第3张图片

5.2.3 前端技术栈

  • 开发工具:Visual Studio Code,hbuilder
  • 技术框架: nodejs,VUE,Element UI,mock,webpack

5.3 Yapi

5.3.1 介绍

瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第4张图片

5.3.2 使用

使用方法和postman及Apifox类似,只不过是以网站形式进行操作,如图瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第5张图片

5.4Swagger

5.4.1 介绍

瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第6张图片
依赖代码如下:

<dependency>
    <groupId>com.github.xiaoymingroupId>
    <artifactId>knife4j-spring-boot-starterartifactId>
    <version>3.0.3version>
dependency>

5.4.2 使用

  • 配置maven坐标,如图瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第7张图片
  • 配置swagger,加注解如图瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第8张图片
  • WebMVCconfig加入如下配置:
    public Docket createRestApi(){  
//        文档类型  
        return new Docket(DocumentationType.SWAGGER_2)  
                .apiInfo(apiInfo())  
                .select()  
                .apis(RequestHandlerSelectors.basePackage("org.example.phil.takeAway.controller"))  
                .paths(PathSelectors.any())  
                .build();  
    }  
    private ApiInfo apiInfo() {  
        return new ApiInfoBuilder()  
                .title("我的外卖")  
                .version("1.0")  
                .description("我的外卖接口文档")  
                .build();  
    }
//    解决SpringBoot 2.6x 与Swagger3.0报错问题  
@Bean  
public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {  
    return new BeanPostProcessor() {  
        @Override  
        public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {  
            if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) {  
                customizeSpringfoxHandlerMappings(getHandlerMappings(bean));  
            }  
            return bean;  
        }  
  
        private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) {  
            List<T> copy = mappings.stream()  
                    .filter(mapping -> mapping.getPatternParser() == null)  
                    .collect(Collectors.toList());  
            mappings.clear();  
            mappings.addAll(copy);  
        }  
  
        @SuppressWarnings("unchecked")  
        private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {  
            try {  
                Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");  
                field.setAccessible(true);  
                return (List<RequestMappingInfoHandlerMapping>) field.get(bean);  
            } catch (IllegalArgumentException | IllegalAccessException e) {  
                throw new IllegalStateException(e);  
            }  
        }};}
  • 同上文件里配置静态资源映射,代码如下:
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources");  
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
  • 过滤器放行,如图瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第9张图片
  • application.yml如图配置瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第10张图片
  • 启动后浏览器输入网址http://localhost:8080/doc.html,如图瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第11张图片
  • 提交本地git并推送合并到master,如图瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第12张图片
    瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第13张图片

5.4.3 常用注解

注解 说明
@Api 用在请求类上,例如controller类
@ApiModel 用在实体类上,表示一个返回响应数据的信息
@ApiModelProperty 用在属性上,描述响应类的属性
@ApiOperation 用在请求方法上,说明方法用途,作用
@ApiImplicitParams 用在请求方法,表示一组参数
@ApiImplicitParam 用在@ApiImplicitParams注解上,指定一个请求参数的各个方面

5.5 项目部署

5.5.1 部署架构

瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第14张图片

5.5.2 部署环境

  • 服务器A-127.0.0.2,Ubuntu系统,用途:
    • Nginx:部署前端、配置反向代理
    • MySQL:主从复制中的从库
  • 服务器B-127.0.0.1,windows本地,用途:
    • jdk:运行java项目
    • git:版本控制工具
    • maven:项目构建工具
    • jar: Spring Boot项目打包基于内置Tomcat运行
    • mysql:主从复制主库
  • 服务器C-127.0.0.1,配置redis

5.5.3 部署前端

  • 这里服务器是WSL安装的Ubuntu,mnt/d或者mnt/e是指Windows中的d盘或e盘,复制压缩包到/usr/share/nginx/html并解压,如图瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第15张图片
  • 更改配置文件,如图瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第16张图片
  • 启动nginx服务并输入网址,如图启动成功瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第17张图片

5.5.4 部署后端

  • 打开项目所在目录找到jar包如图瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第18张图片
  • cmd执行命令java -jar MyTakeAway-1.0-SNAPSHOT.jar,如图瑞吉外卖--前后端分离部署,Swagger介绍及怎么使用,Windows中WSL版Linux怎么和Windows互传文件_第19张图片

你可能感兴趣的:(项目实战,Linux,linux,java,intellij-idea)