【架构师面试-Java编程基本功-15】-bean的装配与自动装配
2021/12/8 22:16:49
本文主要是介绍【架构师面试-Java编程基本功-15】-bean的装配与自动装配,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1:什么是 bean 装配
装配,或 bean 装配是指在 Spring 容器中把 bean 组装到一起,前提是容器需要知道bean 的依赖关系,如何通过依赖注入来把它们装配到一起。
2:什么是 bean 的自动装配
在 Spring 框架中,在配置文件中设定 bean 的依赖关系是一个很好的机制,Spring 容器能够自动装配相互合作的 bean,这意味着容器不需要和配置,能通过 Bean 工厂自动处理 bean 之间的协作。这意味着 Spring 可以通过向 Bean Factory 中注入的方式自动搞定 bean 之间的依赖关系。自动装配可以设置在每个 bean 上,也可以设定在特定的 bean 上。
3:解释不同方式的自动装配,spring 自动装配 bean 有哪些方式
在 spring 中,对象无需自己查找或创建与其关联的其他对象,由容器负责把需要相互协作的对象引用赋予各个对象,使用 autowire 来配置自动装载模式。
在 Spring 框架 xml 配置中共有 5 种自动装配:
no:默认的方式是不进行自动装配的,通过手工设置 ref 属性来进行装配 bean。
byName:通过 bean 的名称进行自动装配,如果一个 bean 的property 与另一 bean 的 name 相同,就进行自动装配。
byType:通过参数的数据类型进行自动装配。
constructor:利用构造函数进行装配,并且构造函数的参数通过byType 进行装配。
autodetect:自动探测,如果有构造方法,通过 construct 的方式自动装配,否则使用byType 的方式自动装配。
4:使用@Autowired 注解自动装配的过程是怎样的?
使用@Autowired 注解来自动装配指定的 bean。在使用@Autowired 注解之前需要在 Spring 配置文件进行配置,<context:annotation-config />。
在启动 spring IOC 时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor 后置处理器,当容器扫描到@Autowied、@Resource 或@Inject 时,就会在 IOC 容器自动查找需要的bean,并装配给该对象的属性。在使用@Autowired 时,首先在容器中查询对应类型的 bean:
如果查询结果刚好为一个,就将该 bean 装配给@Autowired 指定的数据;
如果查询的结果不止一个,那么@Autowired 会根据名称来查找;
如果上述查找的结果为空,那么会抛出异常。解决方法时,使用required=false。
5:自动装配有哪些局限性?
自动装配的局限性是:
重写:你仍需用 和 配置来定义依赖,意味着总要重写自动装配。
基本数据类型:你不能自动装配简单的属性,如基本数据类型,String 字符串,和类。
模糊特性:自动装配不如显式装配精确,如果有可能,建议使用显式装配。
6:你可以在 Spring 中注入一个 null 和一个空字符串吗?
可以
这篇关于【架构师面试-Java编程基本功-15】-bean的装配与自动装配的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器