苍穹外卖-day01 课程内容- 软件开发整体介绍- 苍穹外卖项目介绍- 开发环境搭建- 导入接口文档- Swagger

1.软件开发

1.1 软件开发流程

  1. 需求分析 : 需求规格说明书

  2. 设计 : UI设计 , 数据库设计 , 接口设计

  3. 编码 : 项目代码 , 单元测试

  4. 测试 : 测试用例 ,测试报告

  5. 上线运维 : 软件环境安装 , 配置

1.2 角色分工

岗位/角色对应阶段职责/分工
项目经理全阶段对整个项目负责,任务分配、把控进度
产品经理需求分析进行需求调研,输出需求调研文档、产品原型等
UI设计师设计根据产品原型输出界面效果图
架构师设计项目整体架构设计、技术选型等
开发工程师编码功能代码实现
测试工程师测试编写测试用例,输出测试报告
运维工程师上线运维软件环境搭建、项目上线

1.3 软件环境

  • 开发环境(development) : 开发人员在开发阶段使用的环境 , 一般外部用户无法访问。

  • 测试环境(testing) : 专门给测试人员使用的环境 , 用于测试环境 , 一般外部用户无法访问。

  • 生产环境(production) : 即线上环境 , 正式提供对外服务的环境。

2.苍穹外卖项目介绍

2.1 项目介绍

  • 定位 : 专门为餐饮企业(餐厅 ,饭店) 定制的一款软件产品;

  • 功能架构 : 体现项目中的业务功能模块。

    • 管理端 : 员工管理 , 分类管理 , 菜品管理 , 套餐管理 , 订单管理 , 工作台 , 数据统计 , 来单统计;

    • 用户端 : 微信登录 , 商品浏览 , 购物车 , 用户下单 , 微信支付 , 历史订单 , 地址管理 , 用户催单 ;

2.2 产品原型

  • 产品原型 : 用于展示项目的业务功能 ,一般由产品经理进行设计 ;

    • 管理端

    • 用户端

2.3技术选型

  • 技术选型 : 展示项目中使用到的技术框架和中间件等;

3.开发环境搭建

3.1 前端环境搭建

  • 管理端 (Web)

  • 用户端 (小程序)

前端工程基于 nginx 运行 , 双击nigix.exe即可启动nginx服务,访问端口号为80;

3.2 后端环境搭建

3.2.1 熟悉项目结构
  • 后端服务 (Java)

后端工程基于maven进行项目构建,并且进行分模块开发;

初始工程模块 :

序号名称说明
1sky-take-outmaven父工程,统一管理依赖版本,聚合其他子模块
2sky-common子模块,存放公共类,例如:工具类、常量类、异常类等
3sky-pojo子模块,存放实体类、VO、DTO等
4sky-server子模块,后端服务,存放配置文件、Controller、Service、Mapper等

对项目整体结构了解后,接下来我们详细分析上述的每个子模块:

  • sky-common: 模块中存放的是一些公共类,可以供其他模块使用

    分析sky-common模块的每个包的作用:

    名称说明
    constant存放相关常量类
    context存放上下文类
    enumeration项目的枚举类存储
    exception存放自定义异常类
    json处理json转换的类
    properties存放SpringBoot相关的配置属性类
    result返回结果类的封装
    utils常用工具类

  • sky-pojo: 模块中存放的是一些 entity、DTO、VO

    分析sky-pojo模块的每个包的作用:

  • 名称说明
    Entity实体,通常和数据库中的表对应
    DTO数据传输对象,通常用于程序中各层之间传递数据
    VO视图对象,为前端展示数据提供的对象
    POJO普通Java对象,只有属性和对应的getter和setter

  • sky-server: 模块中存放的是 配置文件、配置类、拦截器、controller、service、mapper、启动类等

  • 分析sky-server模块的每个包的作用:

    名称说明
    config存放配置类
    controller存放controller类
    interceptor存放拦截器类
    mapper存放mapper接口
    service存放service类
    SkyApplication启动类

3.2.2 Git版本控制

使用Git进行项目代码的版本控制,具体操作 :

  • 创建Git本地仓库

  • 创建Git远程仓库

  • 将本地文件推送到Git远程仓库

3.2.4 前后端联调测试

记得改数据库的密码,如果能够登录进去就代表环境搭建成功;

3.2.5 nginx反向代理和负载均衡

nignx反向代理的好处 :

  • 提高反应速度;

  • 进行负载均衡 ; (负载均衡 : 就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器)

  • 保证后端服务安全

nignx反向代理的配置方式 :

<span style="background-color:#f8f8f8"><span style="color:#333333">server{
    listen 80;
    server_name localhost;
    
    location/api/{
        proxy_pass http://localhost:8080/admin/; #反向代理
    }
}</span></span>

nignx负载均衡的配置方式 :

<span style="background-color:#f8f8f8"><span style="color:#333333">upstream webservers{
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}
server{
    listen 80;
    server_name localhost;
    
    location /api/{
        proxy_pass http://webservers/admin;#负载均衡
    }
}</span></span>

3.3 完善登录功能

问题 : 员工表中额密码是明文存储 , 安全性太低

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

MD5加密方式对明文密码进行加密;

比如 : 123456 -> e10adc3949ba59abbe56e057f20f883e

解决 :

  1. 修改数据库中的明文密码,改为MD5加密之后的密文

  2. 修改Java代码,前端提交的密码进行MD5加密之后再跟数据库中的密码对比

<span style="background-color:#f8f8f8"><span style="color:#333333">​
        password = DigestUtils.md5DigestAsHex(password.getBytes());
        if (!password.equals(employee.getPassword())) {
            //密码错误
            throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);
        }
​</span></span>

4.导入接口文档

在yapi中创建项目,导入json文件;

5.Swagger

使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面,官网 : API Documentation & Design Tools for Teams | Swagger

Knife4j 对 swagger 进行了封装 , 简化了相应的操作 ;

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

<span style="background-color:#f8f8f8"><span style="color:#333333"><dependency>
   <groupId>com.github.xiaoymin</groupId>
   <artifactId>knife4j-spring-boot-starter</artifactId>
</dependency></span></span>

使用方式 :

  1. 导入Knife4j的maven坐标

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

  3. 设置静态资源映射,否则接口文档无法访问;

<span style="background-color:#f8f8f8"><span style="color:#333333">/**
     * 通过knife4j生成接口文档
     * @return
*/
    @Bean
    public 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;
    }</span></span>

管理端 : 

 用户端 : 

静态资源映射 : 

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swagger Maven Plugin是一个用于生成Swagger接口文档的Maven插件。它可以帮助开发人员在构建项目时自动生成Swagger规范的JSON或YAML文件,以便于API文档的管理和使用。 使用Swagger Maven Plugin生成接口文档swagger.json或swagger.yaml的步骤如下: 1. 在项目的pom.xml文件中添加Swagger Maven Plugin的依赖配置: ```xml <build> <plugins> <plugin> <groupId>com.github.kongchen</groupId> <artifactId>swagger-maven-plugin</artifactId> <version>3.1.8</version> <configuration> <!-- 配置Swagger文档的基本信息 --> <apiSources> <apiSource> <springmvc>true</springmvc> <locations>com.example.controller</locations> <basePath>/api</basePath> <info> <title>API文档</title> <version>1.0.0</version> <description>API接口文档</description> <termsOfServiceUrl>http://example.com/terms-of-service</termsOfServiceUrl> <contact> <email>contact@example.com</email> </contact> <license> <name>Apache 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.html</url> </license> </info> </apiSource> </apiSources> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 2. 在项目根目录下执行以下命令生成Swagger接口文档: ``` mvn compile swagger:generate ``` 3. 执行完上述命令后,Swagger Maven Plugin会根据配置的信息扫描项目中的接口,并生成Swagger规范的JSON或YAML文件。生成的文件默认保存在项目的target目录下的swagger目录中。 生成的Swagger接口文档可以通过访问http://localhost:8080/api/swagger-ui.html(假设项目部署在本地的8080端口)来查看和测试API接口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值