![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
文章平均质量分 76
Mr.VK
这个作者很懒,什么都没留下…
展开
-
后端面试题整理-1
int 是基本数据类型,它在内存中的存储效率较高,适用于大量需要整数运算的情况,当需要在面向对象的环境中处理整数值时,可以使用 Integer 包装类。在 Java 中,Object 类中的 equals() 方法默认实现就是比较两个对象的内存地址是否相等,因此需要在具体类中重写 equals() 方法来实现逻辑上的相等判断。在比较基本数据类型时,使用==比较的是它们的值是否相等。在 Java 中,== 和 equals() 都是比较对象是否相等的方法,但它们的实现方式和比较的含义不同。原创 2024-03-05 19:12:35 · 1001 阅读 · 0 评论 -
MySQL 优化场景实战
单表500万数量级查询优化原创 2024-03-05 19:04:39 · 1033 阅读 · 0 评论 -
CopyUtil对象复制工具类
CopyUtil是一个通用的对象复制工具类,其中包含单体复制和列表复制两个方法。单体复制方法copy通过传入源对象和目标class,利用Java反射机制创建目标对象,并将源对象的属性值复制到目标对象中。若源对象为空,则返回null。若创建目标对象失败,则返回null。列表复制方法copyList通过遍历源列表中的每个对象,调用单体复制方法copy完成每个对象的复制,将复制后的对象添加到新的列表中。若源列表为空,则返回空列表。在这个实现中,使用了开源框架BeanUtils的copyProperties方原创 2024-03-04 16:59:31 · 1315 阅读 · 0 评论 -
DTO 快速转换 VO 实现
在前后端开发的过程中,经常会遇到需要将从数据库查询出来的 DTO 对象转换为传递给前端的 VO 对象原创 2024-03-04 16:54:13 · 799 阅读 · 0 评论 -
基于 Redis 的 JWT令牌失效方案
当用户登录状态到登出状态时,对应的JWT的令牌需要设置为失效状态,这时可以使用基于 Redis 的黑名单方案来实现JWT令牌失效。原创 2024-03-04 16:47:39 · 1395 阅读 · 0 评论 -
【Redis】RedisTemplate和StringRedisTemplate的区别
RedisTemplate 看这个类的名字后缀是 Template ,如果了解过 Spring 如何连接关系型数据库的,大概不会难猜出这个类是做什么的 ,它跟 JdbcTemplate 一样封装了对Redis的一些常用的操作,当然 StringRedisTemplate 跟 RedisTemplate 功能类似那么肯定就会有人问,为什么会需要两个Template呢,一个不就够了吗?,如果需要自定义序列化配置,可以自己写一个 RedisTemplate 的Bean,来完成配置。那么就可以得出一个结论,原创 2024-02-29 10:24:12 · 2205 阅读 · 0 评论 -
【Java】Java 中的方法引用写法
方法引用(MethodReference)是Lambda表达式的另一种格式,在某些场景下可以提高代码的可读性。原创 2024-03-03 21:07:03 · 1035 阅读 · 0 评论 -
【Spring Boot】实现全局异常处理
Spring Boot 实现全局异常处理原创 2024-03-03 21:11:48 · 506 阅读 · 0 评论 -
Spring 事务失效的场景
Spring 事务失效指在使用 Spring 进行事务管理时,事务没有被正确地提交或回滚所致的问题。可能是因为代码中未正确地配置事务管理器或者事务注解的使用不正确所导致的。如果事务失效,则数据库操作可能未能正确地更新或回滚,可能会造成不可预知的结果,从而影响系统的稳定性和一致性。原创 2024-03-03 21:21:52 · 990 阅读 · 0 评论 -
【Redis】什么是缓存雪崩,如何预防缓存雪崩?
如果缓存集中在一段时间内失效,也就是通常所说的热点数据集中失效 (一般都会给缓存设定一个失效时间,过了失效时间后,该数据库会被缓存直接删除,从而一定程度上保证数据的实时性),发生大量的缓存穿透,造成大量的查询要查询数据库,这就造成了缓存雪崩,可能会导致数据库崩溃。如果缓存中间件宕机,当然可以对缓存中间件做高可用集群来避免。原创 2023-08-19 23:44:09 · 813 阅读 · 0 评论 -
【Redis】什么是缓存击穿,如何预防缓存击穿?
缓存击穿是指一个 Key 非常热点,大并发集中对这一个点进行访问,当这个Key 在失效的瞬间,持续的大并发就会穿破缓存,直接请求数据库。缓存击穿和缓存雪崩的区别在于,缓存击穿是针对某一个 Key缓存而言,缓存雪崩则是很多 Key。一般的网站很难有某个数据达到缓存击穿的级别,一般是热门网站的秒杀或爆款商品,才有可能发生这种情况。当然,这时把这种商品设置成永不过期或者过期时间超过抢购时段是一种很好的避免发生缓存击穿的方式,前提是这时应用系统不需要考虑数据可能的不一致性问题。原创 2023-08-19 23:43:29 · 621 阅读 · 0 评论 -
【Redis】什么是缓存穿透,如何预防缓存穿透?
但这样做有一定的弊端,就是当这个查询有数据时,在一定时间内得到的结果仍然是空,所以这个空结果的数据它的过期时间应该要设置得短一些,让它能得到自动剔除;空值缓存,也就保存了更多的键值,消耗了更多的内存空间,如果是外部攻击大量的空值缓存,会消耗掉所有的内存空间,导致系统崩溃。缓存穿透是指查询一个一定不存在的数据,由于缓存中不存在,这时会去数据库查询查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,这就造成缓存穿透。简单来说,就是访问业务系统不存在的数据,就可能会造成缓存穿透。原创 2023-08-19 23:41:34 · 1003 阅读 · 0 评论 -
【Redis】Redis中的布隆过滤器
布隆过滤器的原理其实非常简单,就是bitmap + 多重hash,主要优势就是利用非常小的空间就可以实现在大规模数据下快速判断某一对象是否存在,缺点是存在误判的可能,但不会漏判,也就是存在的对象一定会判断为存在,而不存在的对象会有较低的概率为误判为存在,且不支持对象的删除,因为会增加误判的概率。最典型的使用是解决缓存穿透的问题。原创 2023-08-19 22:54:36 · 534 阅读 · 0 评论 -
【Redis】Redisson分布式锁原理与使用
Redisson - 是一个高级的分布式协调Redis客服端,能帮助用户在分布式环境中轻松实现一些Java的对象,Redisson、Jedis、Lettuce 是三个不同的操作 Redis 的客户端,Jedis、Lettuce 的 API 更侧重对 Reids 数据库的 CRUD(增删改查),而 Redisson API 侧重于分布式开发。GitHub地址:https://github.com/redisson/redissonre。原创 2023-08-19 22:20:38 · 568 阅读 · 0 评论 -
【Redis】Redis哨兵模式
Redis 可以存在多台服务器,并且实现了主从复制的功能。哨兵模式是一种特殊的模式,在 Redis 中哨兵是一个独立的进程。其原理是哨兵通过发送命令,等待 Redis 服务器响应,从而监控运行的多个 Redis 实例是否可以正常工作,如下图所示。通过发送命令,让 Redis 服务器返回其运行状态,包括主服务器和从服务器。当哨兵监测到主机出现故障后,会自动将其中一台从服务器切换成主服务器,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换新的主服务器。原创 2023-08-18 22:21:47 · 607 阅读 · 0 评论 -
【Redis】Redis 的主从同步
很多企业都没有使用 Redis 的集群,但是至少都做了主从。有了主从,当主节点(Master) 挂掉的时候,运维让从节点 (Slave) 过来接管,服务就可以继续,否则主节点需要经过数据恢复和重启的过程,这就可能会拖延很长的时间,从而影响线上业务的持续服务。尽管 Redis 的性能很好,但是有时候依旧满足不了应用的需要,比如过多的用户进入主页.导致 Redis 被频繁访问,此时就存在大量的读操作。原创 2023-08-18 00:22:57 · 2288 阅读 · 0 评论 -
【Redis】Redis的持久化(备份)
Redis的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证Redis的数据不会因为故障而丢失,这种机制就是Redis的持久化机制。原创 2023-08-16 23:30:38 · 872 阅读 · 0 评论 -
MyBatis快速入门
实体类属性名和数据库表列名不一致,不能自动封装数据(1)起别名:在SQL语句中,对不一样的列名起别名,别名和实体类属性名一样1*可以定义片段,提升复用性(2)resultMap : 定义完成不一致的属性名和列名的映射(1)#{} : 执行SQL时,会将#占位符替换为?,将来自动设置参数值(2)${} : 拼SQL,会存在sQL注入问题(1)用于设置参数类型,该参数可以省略(1)转义字符(2)<![CDATA[内容]I>SQL语句设置多个参数有几种方式?原创 2023-08-06 17:37:17 · 174 阅读 · 0 评论 -
Spring 非自定义Bean注解
在xml中配置的Bean都是自己定义的, 例如:UserDaolmpl,UserServicelmpl。但是,在实际开发中有些功能类并不是我们自己定义的, 而是使用的第三方jar包中的,那么,这些Bean要想让Spring进行管理,也需要对其进行配置配置非自定义的Bean需要考虑如下两个问题:- 被配置的Bean的实例化方式是什么?无参构造、有参构造、静态工厂方式还是实例工厂方式;- 被配置的Bean是否需要注入必要属性。原创 2023-08-04 22:54:18 · 722 阅读 · 0 评论 -
详解Spring中涉及的技术
介绍了Spring框架中使用到技术,如注解,反射,IOC/DI原创 2023-08-03 23:28:46 · 703 阅读 · 0 评论 -
详解Spring事务
事务(Transaction)是指在编程中一系列操作组成的单个逻辑工作单元,要么全部执行成功,要么全部失败回滚,保证数据的一致性、完整性和安全性原创 2023-08-03 22:31:43 · 268 阅读 · 0 评论 -
详解Spring Bean的生命周期
对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。对于ApplicationContext容器,当容器启动结束后,便实例化所有的bean。容器通过获取BeanDefinition对象中的信息进行实例化。并且这一步仅仅是简单的实例化,并未进行依赖注入。实例化对象被包装在BeanWrapper对象中,BeanWrapper提供了设置对象属性的接口,从而避免了使用反射机制设置属性。原创 2023-08-03 19:30:53 · 1501 阅读 · 0 评论 -
如何使用RestTemplate测试接口
RestTemplate是一个执行HTTP请求的同步客户端,在诸如JDK的HttpURLConnection,Apache的HttpComponents等底层HTTP客户端上刚开一个简单的模板方法API。原创 2023-08-02 23:27:43 · 224 阅读 · 0 评论 -
SpringMVC中Model和ModelAndView的区别
虽然Model和ModelAndView都可以用于将数据传递到视图层,但ModelAndView更加强大,因为它不仅可以传递数据,还可以指定要呈现的视图。如果你只需要传递数据而不关心视图,则可以使用Model。但如果你需要同时传递数据和指定视图,则应该使用ModelAndView。原创 2023-08-02 22:25:47 · 312 阅读 · 0 评论