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

项目--苍穹外卖

1.| constant | 存放相关常量类 |
| context | 存放上下文类 |
| enumeration | 项目的枚举类存储 |
| exception | 存放自定义异常类 |
| json | 处理json转换的类 |
| properties | 存放SpringBoot相关的配置属性类 |
| result | 返回结果类的封装 |
| utils | 常用工具类 |
2.| Entity | 实体,通常和数据库中的表对应 |
| DTO | 数据传输对象,通常用于程序中各层之间传递数据 |
| VO | 视图对象,为前端展示数据提供的对象 |

| POJO | 普通Java对象,只有属性和对应的getter和setter |

3.| config | 存放配置类 |
| controller | 存放controller类 |
| interceptor | 存放拦截器类 |
| mapper | 存放mapper接口 |
| service | 存放service类 |
| SkyApplication | 启动类 |

3.先编译一下,然后正常运行

 前后端联调:

nginx反向代理,就是将前端发送的动态请求由nginx转发到后端服务器

好处: 

前端发送的请求,是如何请求到后端服务的?

在使用Nginx作为反向代理的Java项目中,前端发送的请求会被Nginx接收并处理,然后转发给后端服务。以下是一些基本步骤:

客户端(前端)发送请求到Nginx服务器。
Nginx服务器接收请求,并根据配置的规则进行处理。
Nginx根据配置的规则将请求转发给后端服务。
后端服务接收到请求并处理,然后返回响应。
Nginx接收后端服务的响应,并将其返回给客户端。

在这个过程中,Nginx扮演了反向代理的角色,接收客户端的请求并转发给后端服务,同时也将后端服务的响应返回给客户端。通过Nginx,可以实现对请求的负载均衡(把大量的请求按照我们指定的方式均衡的分配给集中的每台服务器)、缓存、安全过滤等处理,提高系统的性能和安全性。 

配置:nginx.conf

server{     

             listen 80;     

             server_name localhost;          

             location /api/ {                     

                             proxy_pass   http://localhost:8080/admin/;  #反向代理     } }

nginx 负载均衡的配置方式: nginx.conf

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/;  #负载均衡     } }

完善登录功能

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

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

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

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

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

在EmployeeServiceImpl中

//进行md5加密,然后再进行比对

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

if (!password.equals(employee.getPassword())) {    

//密码错误  

throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR); }

前后端 分离开发流程:

导入接口文档 

json导入YApi

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

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

Swagger

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

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

1.导入maven坐标

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

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

<dependency>            

<groupId>com.github.xiaoymin</groupId>            

<artifactId>knife4j-spring-boot-starter</artifactId>            

<version>3.0.2</version>

</dependency>

 WebMvcConfiguration中:

@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;

}

/* * 
*设置静态资源映射 ,主要是访问接口文档
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
   log.info(“开始设置静态资源映射...");   
   registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");    
   registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
   }

常用注解:

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

@Api(tags ="员工相关接口")

@ApiOperation(value = "员工登录")    方法上

@ApiOperation("员工退出")

DTO:专注于做数据传输

VO

http://www.lryc.cn/news/165344.html

相关文章:

  • 从零开发短视频电商 使用Spring WebClient发起远程Http调用
  • Python实现成语接龙
  • 继续上一个爬虫,所以说selenium加browsermobproxy
  • Sentinel服务熔断和流控
  • 01_TMS320F28004x系列MCU介绍和资料搜集
  • JavaScript中获取对象属性的不同方法
  • 【STM32教程】第四章 STM32的外部中断EXTI
  • 力扣第40天----第121题、第122题
  • Flask 使用 JWT(二)
  • 从0到1理解ChatGPT原理
  • 如何解决 “Component cannot be used as a JSX component“
  • 小程序自定义tabbar
  • 分布式系统第五讲:分布式事务及实现方案
  • 算法通关村17关 | 透析跳跃游戏
  • ARM接口编程—RTC(exynos 4412平台)
  • 数据分享|WEKA信贷违约预测报告:用决策树、随机森林、支持向量机SVM、朴素贝叶斯、逻辑回归...
  • 逆市而行:如何在市场恐慌时保持冷静并抓住机会?
  • SpringBoot项目在Linux上启动、停止脚本
  • 基于32位单片机的感应灯解决方案
  • 机器学习——支持向量机(SVM)
  • HTTP协议初识·下篇
  • c++ 类的实例化顺序
  • Vue自动生成二维码并可下载二维码
  • 应该下那个 ActiveMQ
  • 【C语言】指针详解(3)
  • 告别HR管理繁琐,免费低代码平台来帮忙
  • Java开发面试--Redis专区
  • Ansible-roles学习
  • python3如何安装各类库的小总结
  • ffmpeg 特效 转场 放大缩小