Java面试题⑤

2023-11-30 23:42:15 浏览数 (2)

​今天的面试题应该是常问的SpringBoot的两大特点

1. 说一下SpringBoot 的自动装配和起步依赖

​​​​​SpringBoot原理——起步依赖与自动装配以及自定义starter_我爱布朗熊的博客-CSDN博客 建议可以看一下上面这篇文章,讲的比较细致。 起步依赖就是SpringBoot如果需要哪个依赖直接引入就可以,比如说web依赖,直接引入Spring-boot-starter-web即可,而传统Spring则需要引入什么servlet,webmvc,jackson,aop等等。起步依赖的原理其实就是利用了maven的传递依赖,a依赖b,b依赖c,c依赖d,如果引入了a,则会自动引入b,c,d依赖。

自动装配这是SpringBoot在启动时会自动将相关的jar包,bean对象自动配置到SpringBoot程序中。其核心注解就是@EnableAutoConfigration,该注解会导入一个AutoConfigrationImprotSelector.class类,在该类中有一个importSelector方法,该方法返回值是一个String【】数组,就是需要spring容器自动装配的bean对象的全部类名。Spring会加载“META-INF/spring.factories”文件和“META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports”文件,当把上面的配置文件加载后会封装成一个List集合,最终List集合会被封装成一个String【】数组,String【】数组中的数据最终会被加载到spring ioc容器中;

spring.factories文件是早期Springboot自动加载的文件,在spring2.7.0体提供了一个新的文件AutoConfiguration.imports 但是要注意的是: 在spring2.7.x版本中还兼容spring.factories文件,但是在spring3.x.x之后便不再兼容,spring.factories文件被彻底移除,这两个文件都是记录Bean的全类名 ​ 我们以后导入的配置类定义在在AutoConfiguration.imports文件即可

​我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞