当前位置: 首页 > news >正文

day01-项目概述、环境搭建

目录

1 软件开发整体介绍

软件开发流程

角色分工

软件环境

 2 苍穹外卖项目介绍

项目介绍

产品原型

技术选型

3 开发环境搭建

前端环境搭建

​编辑

后端环境搭建

nginx 反向代理

 

完善登录功能

4 导入接口文档

前后端分离开发流程

操作步骤

5 Swagger

介绍

使用方式

常用注解



1 软件开发整体介绍

软件开发流程

角色分工

软件环境

 2 苍穹外卖项目介绍

项目介绍

产品原型

技术选型

3 开发环境搭建

前端环境搭建

注意:
 - Nginx目录必须放在没有中文的目录中才能正常运行
 - 当前Nginx的配置文件中已经配置了反向代理,通过此配置可以将前端请求转发到后端服务

后端环境搭建

 

 

 

 

nginx 反向代理

完善登录功能

问题:

员工表中的密码是明文存储,安全性太低。

解决

将密码加密后存储,提高安全性

使用MD5加密方式对明文密码加密

步骤

        password = DigestUtils.md5DigestAsHex(password.getBytes());

4 导入接口文档

前后端分离开发流程

操作步骤

将课程资料中提供的项目接口导入YApi。

5 Swagger

介绍

使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。

官网:

https://swagger.io/

Knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案。

使用方式

导入 knife4j 的maven坐标

  <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version></dependency>

在配置类中加入 knife4j 相关配置

 /*** 通过knife4j生成接口文档* @return*/@Beanpublic Docket docket() {ApiInfo apiInfo = new ApiInfoBuilder().title("苍穹外卖项目接口文档").version("2.0").description("苍穹外卖项目接口文档").build();Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo).select().apis(RequestHandlerSelectors.basePackage("com.sky.controller")).paths(PathSelectors.any()).build();return docket;}

设置静态资源映射,否则接口文档页面无法访问

 /*** 设置静态资源映射* @param registry*/protected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}

接口文档访问路径为 

http://localhost:8080/doc.html

接口测试

 通过 Swagger 就可以生成接口文档,那么我们就不需要 Yapi 了?

1、Yapi 是设计阶段使用的工具,管理和维护接口

2、Swagger 在开发阶段使用的框架,帮助后端开发人员做后端的接口测试

2个都要用

常用注解

通过注解可以控制生成的接口文档使接口文档拥有更好的可读性,常用注解如下:

@Api

@ApiOperation

@ApiModel        @ApiModelProperty

注解可以影响生成的接口文档

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • CMake构建学习笔记13-opencv库的构建
  • 如何克服编程学习中的挫折感?
  • Unity工具篇 专栏目录
  • Python操作 MySQL 之 pysql与SQLAchemy
  • 大数据-113 Flink DataStreamAPI 程序输入源 自定义输入源 非并行源与并行源
  • 开学要买什么?出门少不了续电神器充电宝!性价比超高充电宝
  • android studio .android和.gradle迁移到其他盘
  • VastBase——VPatch版本控制
  • Mysql基础练习题 1084.销售分析3 (力扣)
  • SQL慢查询优化方式
  • 深入理解指针(7)--计算机模拟实现
  • 安科瑞ACR10R网络电力仪表 CE认证 带外置互感器
  • ESP32-IDF http请求崩溃问题分析与解决
  • Ubuntu22.04安装 docker和docker-compose环境
  • c# fromlayout 布局中间空隙问题
  • 收藏网友的 源程序下载网
  • #Java异常处理
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • bootstrap创建登录注册页面
  • Bytom交易说明(账户管理模式)
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • GraphQL学习过程应该是这样的
  • happypack两次报错的问题
  • Java Agent 学习笔记
  • Spring Cloud中负载均衡器概览
  • spring-boot List转Page
  • swift基础之_对象 实例方法 对象方法。
  • vue数据传递--我有特殊的实现技巧
  • 初探 Vue 生命周期和钩子函数
  • 每天10道Java面试题,跟我走,offer有!
  • 前端面试总结(at, md)
  • 前端性能优化——回流与重绘
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 问题之ssh中Host key verification failed的解决
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • HanLP分词命名实体提取详解
  • 进程与线程(三)——进程/线程间通信
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • !!java web学习笔记(一到五)
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #Spring-boot高级
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (4)STL算法之比较
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (八)Spring源码解析:Spring MVC
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (六)DockerCompose安装与配置
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)