在学习中遇到的知识点

本文介绍了SpringMVC开发中常用的几个注解,如@JSONIgnore用于忽略字段转换为JSON,@RestControllerAdvice用于全局异常处理,Validation进行参数校验,以及如何处理循环依赖和利用缓存提升性能。还涵盖了序列化和反序列化的基本概念及其应用场景。
摘要由CSDN通过智能技术生成

1.@JSONIgnore 该注解写在字段的上面,可以将其表示为在springMVC在将对象转换为json字符串的时候,可以将其字段内容忽略. @JsonFormat可以格式化输出的方式(日期格式化)

2.@RestControllerAdvice 注解在类名上,告知该注解是全局异常处理变量

3.Validation用于参数的校验 需要导入Maven坐标,然后使用@Validated注解在类名上,

要进行实体参数的校验(在字段上表明)@NotNull 值不能为null   @NotEmpty 值不能为null 且值不能空  @Email 满足邮箱规格(要让这些注解实现,需要在接口方法的实体参数上添加@Validated)

如果校验参数是url地址 ,把@URL注解添加到接口方法的实体参数上

如何对validated规则进行分组 :1:在实体类内部定义接口 2:在注解上通过groups属性指定是哪个分组 3:给@Validated注解的value属性进行复制    校验项默认属于什么组:Deault

4.在项目中我们会碰到循环依赖的问题,如何解决呢,这时候我们要在配置文件中写

spring.main.allow-circular-references:true 让spring来处理循环依赖的问题

5。什么是缓存,优势如何,有什么技术可以实现缓存?

缓存是一种临时存储数据的技术,用于提高数据的访问速度和性能。缓存通过将经常访问的数据存储在快速访问的位置,以便在后续情况下可以,更快的获取数据

优势如下:提高性能,减少服务器压力,通过减少对数据库和其他数据源的频繁访问,缓存可以降低服务器的负载。提高可伸缩性,可以更好的处理高并发请求。改善用户体验。

实现缓存的技术包括如下,但不限于

        1.内存缓存:将数据缓存到内存中,例如:redis,Memcached等内存数据库。

        2.分布式缓存:将缓存数据分布在多台服务器上

        3.CDN(内容分发网络,核心理念:将内容缓存到终端用户附近)

        4.数据库查询缓存:数据库系统自身提供的查询结果缓存功能

        5.web服务器缓存:web服务器,例如:Nginx,Apache等提供的页面缓存功能,减少页面缓存的生产次数。

6.在springboot的序列化和反序列化

(1)认识序列化和反序列化        

java序列化就是把java对象转换为字节序列的过程,反序列化就是把字节序列转换为java对象的过程。

(2)为什么要实现对象的序列化和反序列化

        ①我们创建的java对象存储在java堆中,在程序运行结束后JVM会将其回收,实际中,程序运行结束后可能还会需要这些数据,所以需要我们序列化这些数据

        ②:当java对象进行网络传输时,只能传输二进制的数据,所以在发送时我们需要将java对象序列化成二进制数据,在接收端接收到数据后,在反序列化成java对象,即可。

(3)如何实现序列化和反序列化

在jdk中提供了输入流和输出流来实现序列化和反序列化, 需要实现serializable接口。

serialVersionUID的作用

虚拟机是否允许反序列化不仅类路径和功能代码是否相同,一个重要的点是两个类的serialVersionUID是否相同,不相同就不能反序列化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值