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

自定义Starter开发专项测试

14 题 30 分钟 难度:★★

考察知识点

  • Starter命名规范与模块结构
  • 自动配置类编写
  • 条件装配与属性绑定
  • spring.factories配置
💡 参考答案在文末
判断题
1

在自定义Starter的模块结构中,推荐将自动配置代码单独放在一个模块中,Starter模块仅作为依赖聚合模块。这种做法是正确还是错误的?

A

B

2

在测试自定义Starter时,应该使用@SpringBootTest启动完整应用上下文来测试所有功能。这种说法正确吗?

A

B

单选题
3

在Spring Boot 2.2+版本中,使用@ConfigurationProperties绑定配置属性时,以下哪种方式是不推荐的?

A

在配置类上添加@ConfigurationProperties和@Component注解

B

在配置类上添加@ConfigurationProperties,并通过@EnableConfigurationProperties注册

C

在配置类上添加@ConfigurationProperties和@Configuration注解

D

仅在配置类上添加@ConfigurationProperties注解

4

在自定义Starter中,若要将配置文件中的 my.starter.enabled=true 绑定到配置类属性,以下哪种方式是正确的?

A

@Value("${my.starter.enabled}") private boolean enabled;

B

@ConfigurationProperties(prefix = "my.starter") private boolean enabled;

C

@ConfigurationProperties(prefix = "my.starter.enabled") private boolean enabled;

D

@PropertySource("my.starter.enabled") private boolean enabled;

5

根据Spring Boot官方规范,自定义Starter的artifactId应该遵循什么命名格式?

A

spring-boot-starter-{name}

B

{name}-spring-boot-starter

C

spring-boot-{name}-starter

D

starter-spring-boot-{name}

6

在Spring Boot 2.7+版本中,自定义Starter的自动配置类应该通过哪种方式注册?

A

仅使用META-INF/spring.factories文件

B

仅使用META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件

C

推荐使用imports文件,同时保留spring.factories以兼容旧版本

D

使用@ComponentScan注解扫描

7

在spring.factories文件中注册自动配置类时,正确的键(key)应该是哪个?

A

org.springframework.boot.autoconfigure.EnableAutoConfiguration

B

org.springframework.boot.autoconfigure.AutoConfiguration

C

org.springframework.boot.autoconfigure.Configuration

D

org.springframework.boot.autoconfigure.EnableConfiguration

8

测试自定义Starter时,以下哪种方式可以确保自动配置类被正确加载和条件判断生效?

A

使用普通的Spring Boot测试启动应用,手动验证功能

B

使用ApplicationContextRunner配合@Conditional条件测试

C

使用Mockito模拟所有依赖组件

D

使用JUnit的普通单元测试

9

测试自定义Starter中的@ConditionalOnClass条件注解时,应该验证什么?

A

验证类路径中是否存在该类

B

验证当类存在时配置生效,类不存在时配置不生效

C

验证该类是否可以被实例化

D

验证该类是否有默认构造方法

多选题
10

完整的自定义Starter测试应该覆盖哪些场景?

A

默认配置下的自动配置行为

B

用户自定义配置覆盖默认值

C

条件注解的正确性(@ConditionalOnXxx)

D

配置属性的校验和绑定

11

在Spring Boot的配置属性绑定中,以下哪些属性名可以正确绑定到配置类的 userName 属性?(假设prefix为"app")

A

app.user-name

B

app.userName

C

app.user_name

D

app.USER_NAME

12

在spring.factories文件中,除了自动配置类,还可以注册哪些类型的组件?

A

EnvironmentPostProcessor(环境后置处理器)

B

ApplicationListener(应用监听器)

C

Initializer(初始化器)

D

FailureAnalyzer(故障分析器)

填空题
13

在自定义Starter的配置类中,若要对配置属性进行JSR-303校验,需要在类上添加 ____________ 注解,并在需要校验的属性上添加如 ____________ 、@Min、@Max等校验注解。同时,还需要在项目中引入 ____________ 或 spring-boot-starter-validation 依赖。

14

spring.factories文件必须放在项目的 ____________ 目录下,该目录通常位于src/main/resources下。文件格式为Properties格式,每行配置格式为:____________

参考答案
1.正确 2.错误 3.D 4.B 5.B 6.C 7.A 8.B 9.B 10.A;B;C;D 11.A;B;C;D 12.A;B;C;D 13.@Validated;@NotNull;hibernate-validator 14.META-INF;接口全限定名=实现类全限定名
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 自动配置原理专项测试
下一套试卷 → 配置加载的底层规则和外部配置专项测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码