寒假前的总结-苍穹外卖

1、GET、POST、PUT与DELETE的区别

1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。

2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。

3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。

4、DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。

PUT和POST请求的类似,都是把数据放到请求体Body中,在Controller层中需要是@RequestBody注解

异常处理的方式

例如在套餐的批量删除中
Controller层
在这里插入图片描述
Service层
在这里插入图片描述
Dao层略
在Service层判断出了商品属于上架状态还不能删除,所以抛出自定义的异常DeletionNotAllowedException。在Controller层中只进行删除成功的返回处理

DeletionNotAllowedException

在这里插入图片描述
继承与BaseException,但是这个项目过于简单,所以所有的异常都属于同一层级,没有分层
在这里插入图片描述
BaseException很简单,继承了运行时异常RuntimeException,BaseException用于把自定义的异常与SQL抛出的异常分开。

GlobalExceptionHandler

全局异常处理器,通过注解@RestControllerAdvice声明,类中定义了两个成员函数,成员函数用注解 @ExceptionHandler声明;@ExceptionHandle它的作用就是用了捕获异常,比如@ExceptionHandle(abc.class)就是用来捕获abc这种异常的,而这个代码中没有给予参数,所以代表就是捕获所有异常,具体的分类通过成员函数的参数实现,第一个函数捕获BaseException,第二个捕获SQL异常
在具体的成员函数中返回Result.error
在这里插入图片描述

阿里云 alioss

是在实现文件上传时实现的
在这里插入图片描述
在这里插入图片描述
传递给Controller的数据为file类型的(内容为图片)

Controller中的upload方法的参数为MultipartFile file,就是对应与接受file类型的文件。在该Controller中Autowired了AliOssUtil,AliOssUtil中包含了具体把文件上传到阿里云的代码。
在这里插入图片描述
下面先不管AliOssUtil,先来看代码中如何实现的AliOss的属性类和工具类
代码访问阿里云如何认证信息,其保存在yml文件中
在这里插入图片描述
定义AliOssProperties,有Component注解,放到了Spring容器中
@ConfigurationProperties(prefix = “sky.alioss”)的作用是把该类的成员变量与yml中的值进行对应赋值。
在这里插入图片描述
阿里云的工具类,实现了具体的上传文件到阿里云的代码(具体代码不用关注,都是固定的模板),uoload方法返回的是在阿里云返回的访问照片的网络路径。

现在存在的问题是,这个工具类中的成员变量都是空的,还没有赋值,因此就需要接下来创建一个配置类,用户new出工具类并赋值。
在这里插入图片描述
配置类
@Bean用于将对象存入spring的ioc容器中,但是与@controller、@Service、@Component、@Configuration、@Repository等几个注解不同的是,@Bean是作用与方法上的。
在这个配置类中的AliOssUtil中new出来工具了,并且赋值了。
在这里插入图片描述
好了,到现在在Controller中 @Autowired的AliOssUtil就已经存在与ioc容器中了。

  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值