全部学科
Python全栈
python
NodeJS全栈
nodejs

自动配置原理专项测试

20 题 40 分钟 难度:★★

考察知识点

  • @EnableAutoConfiguration工作原理
  • 条件注解@Conditional系列
  • SPI机制与spring.factories
  • 自动配置类加载流程
💡 参考答案在文末
判断题
1

Spring Boot的自动配置可以被用户自定义的配置覆盖,用户定义的Bean优先于自动配置的Bean。

A

B

2

AutoConfigurationImportSelector会根据@Conditional条件注解过滤自动配置类,不满足条件的配置类不会被加载。

A

B

3

@EnableAutoConfiguration注解会自动扫描项目中的所有@Component、@Service、@Controller等注解标注的类。

A

B

单选题
4

Spring Boot 2.7之后,自动配置类通过哪个文件注册?

A

META-INF/spring.factories

B

META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

C

application.properties

D

META-INF/config/spring.xml

5

Spring Boot的自动配置类主要存放在哪个模块中?

A

spring-boot-core

B

spring-boot-autoconfigure

C

spring-boot-starter-web

D

spring-context

6

@EnableAutoConfiguration注解通过@Import导入哪个类来实现自动配置类的加载?

A

ConfigurationClassPostProcessor

B

AutoConfigurationImportSelector

C

ComponentScanAnnotationParser

D

BeanDefinitionLoader

7

如何排除Spring Boot的某个自动配置类?

A

在application.yml中配置spring.autoconfigure.exclude

B

在@SpringBootApplication注解中使用exclude属性

C

两种方式都可以

D

无法排除自动配置

8

@ConditionalOnBean注解检查的是什么条件?

A

classpath中是否存在指定类

B

Spring容器中是否存在指定Bean

C

配置文件中是否存在指定属性

D

JVM中是否存在指定对象

9

@ConditionalOnClass注解的作用是什么?

A

当容器中存在指定Bean时生效

B

当classpath中存在指定类时生效

C

当配置文件中有指定属性时生效

D

当应用是Web应用时生效

10

@Conditional注解是Spring框架的条件注解基础,它需要配合哪个接口实现具体的条件判断逻辑?

A

ImportSelector

B

Condition

C

BeanFactoryPostProcessor

D

BeanPostProcessor

11

Spring Boot自动配置的核心思想是什么?

A

手动配置所有组件

B

根据项目依赖和配置自动装配Bean

C

禁用所有Spring配置

D

强制使用XML配置

12

Spring Boot使用哪个类来加载spring.factories或imports文件中的自动配置类?

A

ClassPathXmlApplicationContext

B

SpringFactoriesLoader

C

BeanDefinitionReader

D

AnnotationConfigApplicationContext

多选题
13

Spring Boot自动配置类加载的完整流程包括哪些步骤?

A

AutoConfigurationImportSelector读取配置文件

B

过滤不满足条件的配置类

C

按顺序加载满足条件的配置类

D

执行配置类中的@Bean方法装配Bean

14

Spring Boot自动配置会根据哪些条件判断是否生效?

A

classpath中是否存在某个类

B

容器中是否已存在某个Bean

C

配置文件中是否有特定属性

D

应用运行的环境

15

@EnableAutoConfiguration注解包含哪些元注解或@Import?

A

@AutoConfigurationPackage

B

@Import(AutoConfigurationImportSelector.class)

C

@ComponentScan

D

@Configuration

16

Spring Boot提供了哪些条件注解?

A

@ConditionalOnClass

B

@ConditionalOnBean

C

@ConditionalOnProperty

D

@ConditionalOnWebApplication

填空题
17

AutoConfigurationImportSelector实现了____________接口,它会在所有常规的@Import处理____________执行,这样可以确保____________自定义的配置先被加载,自动配置后加载。

18

Spring Boot启用自动配置的核心注解是____________,它通常被包含在____________组合注解中。自动配置类通过META-INF/spring/____________文件注册。

19

@AutoConfigurationPackage注解的作用是将主启动类所在的____________路径注册到容器中,主要用于____________实体扫描和其他需要自动扫描主包的场景。它内部通过@Import导入____________类实现。

20

@ConditionalOnProperty注解用于检查配置文件中的属性,prefix属性指定____________,name属性指定____________,havingValue属性指定____________,matchIfMissing属性指定属性不存在时是否匹配,默认为false。

参考答案
1.正确 2.正确 3.错误 4.B 5.B 6.B 7.C 8.B 9.B 10.B 11.B 12.B 13.A;B;C;D 14.A;B;C;D 15.A;B 16.A;B;C;D 17.DeferredImportSelector;之后;用户 18.@EnableAutoConfiguration;@SpringBootApplication;org.springframework.boot.autoconfigure.AutoConfiguration.imports 19.包;JPA;AutoConfigurationPackages.Registrar 20.属性前缀;属性名;期望值
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 线上性能监控与压测优化专项测试
下一套试卷 → 自定义Starter开发专项测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码