5.19号面试题总结

1.还是那些东西。。自我介绍,项目介绍啥的。。。。

2.说一说mybatisPlus的一级缓存、二级缓存、批量插入、#{} 和 ${}符号的区别

      一级缓存:

        mybatisPlus的一级缓存是Session缓存,作用域:SqlSession,每个sqlSession之间有一个单独的mapper,彼此之前不受影响,第一次查询的时候会先从数据库查,然后放到缓存里,第二次如果执行相同的SQL语句,就会直接从缓存里面拿取。

        缓存失效:执行增删改操作,会把缓存里面的数据清空,为了防止出现脏读。

       二级缓存:

         mybatisPlus的二级缓存是Mapper,作用域是同一个nameSpace下的Mapper文件内容,每个SqlSession共用一个Mapper。 一次会话查询一条数据,会把这个数据放到当前会话的一级缓存里,如果当前会话失效了,就会把一级缓存的数据放到二级缓存里,然后新的会话就会参考二级缓存。

3.redis的缓存雪崩

缓存雪崩的含义是在某个时间点,缓存key大量失效,导致请求全都落在数据库服务器上,对数据库服务器造成巨大的压力,可能会引起系统的崩溃。

解决办法:

1.可以对请求进行限流。

2.可以设置redis集群,保证服务的高可用。

4.说一下你的项目中SpringCloud用到了哪些组件?

Nacos(注册中心)、gateWay(网关)、Sentinel(熔断器)、Ribbon(负载均衡)、SpringSecurity + oauth2.0(安全认证授权中心)

5.你有没有用到其他的注册中心?(除去nacos)

Zookeeper、Dubbo

6.简单说一下Spring是什么?

Spring有两个核心概念:IOC控制反转和AOP切面,IOC就是说Spring创建完bean的时候,把bean统一交给Spring容器来保管。Aop切面就是对某个类的某个方法进行增强,Aop是基于动态代理实现的,常见的动态代理方式有:JDK动态代理,CGLIB动态代理。

7.怎样解决Spring的循环依赖问题?

循环依赖问题:

 

        

Spring应用了缓存模式来解决循环依赖问题:

三级缓存:

        一级缓存:singletonObjects 用于保存实例化、注入、初始化完成的bean实例。

        二级缓存:earlySingleton 用于保存实例化完成的bean实例。

        三级缓存:根据bean来创建工厂,用于以后扩展生成代理对象。

 

8.SpringMVC怎么设置重定向和转发?

重定向:redirect

转发:forward

9.SpringMVC有哪些注解?

@RequstBody

@RequestParam

@PathVariable

@RestController

@RequestMapping

...

10.SpringBoot和SpringCloud的区别?

首先SpringBoot是单体架构,SpringCloud的微服务架构,可以实现低耦合,高内聚,简化开发,使服务器减少压力,实现高可用。

11.Nginx负载均衡和Ribbon的负载均衡有什么不同?

Nginx负载均衡是基于服务器的负载均衡,可以对所有请求进行转发到Nginx服务器,然后用Nginx分发服务。Ribbon是基于客户端进行负载均衡,将Eureka或者Nacos上的服务地址缓存到本地,然后通过Ribbon的负载均衡策略来达到均衡分发服务的效果。

12.当涉及到判断语句中有聚合函数应该用哪个?(肯定不是where)

用Having。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值