Spring 中有哪些方式可以把 Bean 注入到 IOC 容器?

今天收到一个工作 4 年的粉丝的面试题。
问题是: “Spring 中有哪些方式可以把 Bean 注入到 IOC 容器”。
他说这道题是所有面试题里面回答最好的,但是看面试官的表情,好像不太对。
我问他怎么回答的,他说: “接口注入”、“Setter 注入”、“构造器注入”。
为什么不对?来看看高手的回答。

一、问题解析

好的,把 Bean 注入到 IOC 容器里面的方式有 7 种方式
1. 使用 xml 的方式来声明 Bean 的定义,Spring 容器在启动的时候会加载并解析这个 xml,把 bean 装载到 IOC 容器中。
2. 使用@CompontScan 注解来扫描声明了@Controller、@Service、@Repository、@Component 注解的类。
3. 使用@Configuration 注解声明配置类,并使用@Bean 注解实现 Bean 的定义,这种方式其实是 xml 配置方式的一种演变,是 Spring 迈入到无配置化时代的里程碑。
4. 使用@Import 注解,导入配置类或者普通的 Bean
5. 使用 FactoryBean 工厂 bean,动态构建一个 Bean 实例,Spring CloudOpenFeign 里面的动态代理实例就是使用 FactoryBean 来实现的。
6. 实现 ImportBeanDefinitionRegistrar 接口,可以动态注入 Bean 实例。这个在Spring Boot 里面的启动注解有用到。
7. 实现 ImportSelector 接口,动态批量注入配置类或者 Bean 对象,这个在 Spring Boot 里面的自动装配机制里面有用到。
以上就是我对这个问题的理解。

二、问题总结

工作了 4 年,IOC 和 DI 都没有搞清楚,作为面试官, 想给你放水都放不了啊。
这道题目也很有意义,要想更加优雅的去解决一些实际业务问题,首先得有足够多的工具积累。
你可曾想过,Bean 的注入竟然有这么多方式,而且还有些方式是没听过的呢?
好的,本期的高手面试系列的文章就到这里结束了。
我是 浮生,一个工作了 14 年的 Java 程序员,咱们下期再见。

三、2024最新Java高频面试题 (金三银四面试必备!!!)

视频链接如下点击即可观看

2024最新Java高频面试题,金三银四刷完春招面试就稳了!

四、粉丝福利

最近很多同学问我有没有java学习资料,我根据我从小白到架构师多年的学习经验整理出来了一份50W字面试解析文档、简历模板、学习路线图、java必看学习书籍 、 需要的小伙伴 可以关注我
公众号:“ 
灰灰聊架构 ”, 回复暗号:“ 321 ”即可获取

你可能感兴趣的:(Spring,Java面试题,spring,java,后端)