首页/ 学科题库/ spring/ Spring Bean管理专题
spring 专题精讲

Spring Bean管理专题

1 篇文章 22 道配套习题

Spring Bean管理专题

专题说明

本专题系统讲解Spring Bean的完整管理机制,包括Bean的定义方式、作用域类型、生命周期阶段、依赖注入模式等核心知识点。

学习目标

  1. 掌握Bean的多种定义方式(XML、注解、Java配置)
  2. 理解五种作用域及其适用场景
  3. 了解Bean生命周期的完整流程
  4. 掌握构造器注入和Setter注入的区别

学习内容

  • Bean定义:@Component、@Service、@Repository、@Controller
  • Bean作用域:singleton、prototype、request、session、application
  • Bean生命周期:实例化、属性赋值、初始化、销毁
  • 依赖注入:@Autowired、@Qualifier、@Resource

学习建议

重点理解singleton和prototype的区别,掌握@Autowired注解的使用规则。理解Bean生命周期有助于调试和扩展。

配套习题(22 题)

参考答案在文末
判断题
1
判断题

prototype作用域的Bean在容器关闭时不会执行销毁回调方法。

A

对

B

错

2
判断题

使用标签可以为已定义的Bean添加别名,alias标签的name属性指定原Bean名称,alias属性指定别名。

A

对

B

错

3
判断题

设置abstract="true"的Bean不能被实例化,只能作为配置模板供其他Bean继承使用。

A

对

B

错

4
判断题

request和session作用域只能在Web应用环境中使用,在非Web环境中会导致异常。

A

对

B

错

5
判断题

@Autowired注解的required属性默认为true,当找不到匹配Bean时会抛出异常。若设置为false,则允许依赖为null。

A

对

B

错

单选题
6
单选题

Spring自动装配(Autowiring)的主要作用是?

A

自动创建Bean实例

B

自动注入依赖关系

C

自动配置Bean作用域

D

自动执行初始化方法

7
单选题

Spring Bean生命周期的正确顺序是?

A

实例化 → 属性注入 → 初始化回调 → 销毁回调

B

属性注入 → 实例化 → 初始化回调 → 销毁回调

C

实例化 → 初始化回调 → 属性注入 → 销毁回调

D

实例化 → 属性注入 → 销毁回调 → 初始化回调

8
单选题

关于prototype作用域的Bean,以下说法正确的是?

A

容器启动时就创建实例

B

每次getBean()都返回同一个实例

C

每次getBean()都创建新实例,Spring不管理完整生命周期

D

Spring会缓存prototype Bean的实例

9
单选题

如果一个Bean同时使用@PostConstruct、实现InitializingBean、并配置init-method,它们的执行顺序是?

A

init-method → InitializingBean → @PostConstruct

B

InitializingBean → init-method → @PostConstruct

C

@PostConstruct → InitializingBean → init-method

D

按配置顺序执行,无固定顺序

10
单选题

Spring Bean的默认作用域是什么?

A

prototype

B

singleton

C

request

D

session

11
单选题

当容器中存在多个同类型Bean时,@Autowired默认如何处理?

A

自动选择第一个Bean

B

抛出NoUniqueBeanDefinitionException异常

C

按Bean名称匹配

D

自动忽略注入

12
单选题

Spring Bean别名的主要作用是?

A

创建Bean的多个实例

B

为同一个Bean提供多个访问名称

C

改变Bean的作用域

D

实现Bean的继承关系

13
单选题

Spring Bean继承(parent属性)的主要作用是?

A

实现Java类的继承关系

B

复用已有Bean的配置信息

C

自动注入父Bean作为依赖

D

实现接口继承

多选题
14
多选题

关于singleton作用域的Bean,以下说法正确的是?

A

整个Spring容器中只存在一个实例

B

多线程并发访问需要考虑线程安全问题

C

容器关闭时会执行销毁回调

D

适合存储用户会话信息

15
多选题

@Autowired注解可以标注在哪些位置?

A

字段(成员变量)上

B

构造器上

C

普通方法上

D

Setter方法上

16
多选题

以下哪些方式可以定义Spring Bean的初始化逻辑?

A

使用@PostConstruct注解标注方法

B

实现InitializingBean接口的afterPropertiesSet()方法

C

在XML中配置init-method属性

D

在@Bean注解中指定initMethod属性

17
多选题

关于XML配置中autowire属性的各种模式,以下说法正确的是?

A

byName模式按属性名查找匹配的Bean

B

byType模式按属性类型查找,多个匹配会抛异常

C

constructor模式自动装配构造参数

D

autowire-candidate属性可设置Bean不参与自动装配

填空题
18
填空题

解决同类型多Bean冲突可使用注解指定Bean名称;标记首选Bean可使用注解;按名称自动装配可使用JSR-250标准的注解。

19
填空题

在XML配置中,子Bean通过属性指定父Bean;父Bean设置属性为true表示作为模板不实例化;子Bean可以父Bean的配置值。

20
填空题

使用注解方式配置Bean作用域为prototype,需要在类上添加注解;若要在XML中配置,则使用属性。

21
填空题

Spring Bean初始化回调使用注解,销毁回调使用注解,这两个注解来自。

22
填空题

在XML中,Bean的属性可以定义多个名称/别名,多个名称使用或分隔。

参考答案
1.正确 2.正确 3.正确 4.正确 5.正确 6.B 7.A 8.C 9.C 10.B 11.B 12.B 13.B 14.A;B;C 15.A;B;C;D 16.A;B;C;D 17.A;B;C;D 18.@Qualifier;@Primary;@Resource 19.parent;abstract;覆盖 20.@Scope("prototype");scope="prototype" 21.@PostConstruct;@PreDestroy;Java标准库(javax.annotation) 22.name;逗号;分号
想在手机上刷这套专题的真题?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可解锁本专题全部配套练习与错题本。
了解产品 App
← 上一个专题 Spring AOP高级专题 下一个专题 → Spring 事务专题