微服务高频知识点(一篇文章让你彻底搞明白微服务)

微服务高频知识点(一篇文章让你彻底搞明白微服务)

声明:本文仅做学习与交流,在此记录方便日后查阅,同时希望也能帮助到正在看这篇文章的你。

目录

一、Spring框架

二、SpringBoot框架

三、MybatisPuls框架

四、微服务相关

五、知识点解答

接下来开始正题...

一、Spring框架

什么是Spring?

说出几个常用的Spring的几个注解?

怎么开启Spring的注解装配?

谈谈自己对Spring Ioc和Aop的理解?

解释一下Spring Bean的生命周期?

Spring的事务有几种方式?谈谈Spring的事务隔离级别和传播行为?

说说Spring的优点和缺点?

什么是Spring的自动装配?

Spring的设计模式你了解吗?试着说出两三个Spring中的运用的设计模式?

二、SpringBoot框架

什么是SpringBoot?

SpringBoot与SpringMVC相比有什么特点?

谈谈创建SpringBoot项目的几种方式?

什么是自动配置?

SpringBoot的常用注解说出几个?

如何使用SpringBoot构建RESTful WEB服务?

SpringBoot怎样使用事务的?

SpringBoot打包方式分为哪几种?在项目中一般是通过哪种打包方式什么部署的?

三、MybatisPuls框架

什么是MybatisPlus?

说出几个MybatisPlus的常用注解?

插入语句之后如何返回主键?

MybatisPlus的逻辑删除怎么实现?

怎样用MybatisPlus实现表主键自增?

MybatisPlus相比Mybatis有什么优势?

四、微服务相关

谈谈你对微服务的理解?

微服务架构有什么优点和缺点?

什么是SpringCloud?

使用SpringCloud有什么优势?

服务注册与发现什么意思?SpringCloud如何实现的?

SpringCloud的一些组件介绍?

Zookeeper在项目中的实现及原理?

Zookeeper负载均衡和Nginx负载均衡的区别?

Zookeeper对节点的watch监听通知是永久的吗?为什么?

zk节点宕机如何处理?

为什么要用Dubbo?

Dubbo默认使用的是什么通信框架,你是否还有别的选择?

一般使用什么注册中心?谈谈你对过往项目中用到的注册中心的理解?

单片,SOA和微服务架构有什么区别?

在使用微服务时,您面临哪些挑战?

什么是耦合?

PACT在微服务架构中的用途是什么?

什么是RabbitMQ?

为什么要使用RabbitMQ?

请您描述一下使用RabbitMQ的场景?

如何避免消息重复投递或重复消费?

消息基于什么传输?

RabbitMQ的集群?

什么是kafka?

如何获取topic主题的列表?

为什么需要消息系统,mysql不能满足要求吗?

kafka与传统MQ消息系统之间有三个关键区别?

什么是Hystrix?它如何实现容错?

什么是 Hystrix断路器?我们需要它吗?

JVM几个重要的参数?

谈谈你对JVM调优的理解?

Java中都有哪些引用类型?

Java垃圾回收机制?

五、知识点解答

Spring框架知识点解答:

1、什么是Spring?

答:Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架。它可以集成其他框架,如Structs、Mybatis等,所以又称为框架的框架。

2、说出几个常用的Spring的几个注解?

答:@Autowired:当Spring发现@Autowired注解时,将自动在代码上下文中找到和其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方去;

@Controller:标注一个控制器组件类;

@Service:标注一个业务逻辑组件类;

@Component:标准一个普通的spring Bean类。

3、怎么开启Spring的注解装配?

答:注解装配在默认情况下是不开启的。为了使用注解装配,我们必须在Spring配置文件中配置 元素。

4、谈谈自己对Spring Ioc和Aop的理解?

答:IoC(Inverse of Control:控制反转)是一种设计思想,就是 将原本在程序中手动创建对象的控制权,交由Spring框架来管理。IoC 在其他语言中也有应用,并非 Spirng 特有。

IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个Map(key,value),Map 中存放的是各种对象。将对象之间的相互依赖关系交给 IoC 容器来管理,并由 IoC 容器完成对象的注入。这样可以很大程度上简化应用的开发,把应用从复杂的依赖关系中解放出来。

IoC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。

AOP(Aspect-Oriented Programming:面向切面编程) 能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。

Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候Spring AOP会使用Cglib ,这时候Spring AOP会使用 Cglib 生成一个被代理对象的子类来作为代理。

使用 AOP 之后我们可以把一些通用功能抽象出来,在需要用到的地方直接使用即可,这样大大简化了代码量。我们需要增加新功能时也方便,这样也提高了系统扩展性。日志功能、事务管理等等场景都用到了 AOP 。

5、解释一下Spring Bean的生命周期?

答:如下

实例化bean对象(通过构造方法或者工厂方法)

设置对象属性(setter等)(依赖注入)

如果Bean实现了BeanNameAware接口,工厂调用Bean的setBeanName()方法传递Bean的ID。

如果Bean实现了BeanFactoryAware接口,工厂调用setBeanFactory()方法传入工厂自身

将Bean实例传递给Bean的前置处理器的postProcessBeforeInitialization(Object bean, String beanname)方法

调用Bean

相关作品

为什么我的设备无法识别 5G 网络? 故障排除指南
365体育投注怎么玩

为什么我的设备无法识别 5G 网络? 故障排除指南

📅 07-19 👁️ 7032
微信删除和拉黑区别原来这么大,很多人没搞明白,以后别再用错了
王者荣耀:史上最详细露娜打野攻略,节奏是一个永远不固定的打法