2023最新版(持续更新)
- SpringBoot高频面试题
- 1. SpringBoot的自动配置原理
- 1. SpringBoot的常见注解有哪些?
SpringBoot高频面试题
1. SpringBoot的自动配置原理
前置知识
SpringBoot中,在启动类上的@SpringBootApplication注解中的@EnableAutoConfiguration注解是实现自动配置的核心注解
;
面试时的回答:
1.在SpringBoot项目的启动类上有一个@SpringBootApplication注解,他是一个组合注解,内组合了三个注解,分别是
- @SpringBootConfiguration,这个注解说明了当前类是一个配置类;
- @ ComponentScan,包扫描注解
- @EnableAutoConfiguration
2.其中@EnableAutoConfiguration
是实现自动化配置的核心注解,通过该注解上的@Import注解导入对应的配置选择器,内部就是读取了该项目/该项目引用Jar包的classpath路径下META-INF/spring.factories
文件中的所配置的类的全类名。在这些配置类中所定义的Bean会根据条件注解所指定的条件
来决定是否需要将其导入到Spring容器当中。
3.条件判断会有像@ConditionalOnClass这样的注解,判断是否有对应的calss文件,如果有则加载该类,把配置类中所有的bean放入到Spring容器中使用。另外在配置类配置的bean也会通过@ConditionalOnClass注解去判断容器中是否已经存在了该bean,如果存在则不会再将该bean放入到容器。
1. SpringBoot的常见注解有哪些?
看下表着说就行,或者还可以加上@SpringBootApplication结合来说
注解 | 说明 |
---|---|
@SpringBootApplication | 组合注解,内部包含一下三个注解 |
@SpringBootConfiguration | 组合了@Configuration,实现了配置文件的功能 |
@EnableConfiguration | 开启/关闭自动配置的功能 |
@ComponentScan | Spring组件扫描 |