关于java:Java面试Spring中有哪些方式可以把Bean注入到IOC容器

6次阅读

共计 945 个字符,预计需要花费 3 分钟才能阅读完成。

明天收到一个工作 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 Cloud OpenFeign 外面的动静代理实例就是应用 FactoryBean 来实现的。
  6. 实现 ImportBeanDefinitionRegistrar 接口,能够动静注入 Bean 实例。这个在 Spring Boot 外面的启动注解有用到。
  7. 实现 ImportSelector 接口,动静批量注入配置类或者 Bean 对象,这个在 Spring Boot 外面的主动拆卸机制外面有用到。

以上就是我对这个问题的了解。

总结

工作了 4 年,IOC 和 DI 都没有搞清楚,作为面试官,想给你放水都放不了啊。

这道题目也很有意义,要想更加优雅的去解决一些理论业务问题,首先得有足够多的工具积攒。

你可曾想过,Bean 的注入居然有这么多形式,而且还有些形式是没听过的呢?

须要高手面试文档(附赠阿里外部十万字面试文档)或者有不懂的技术面试题想征询的小伙伴能够后盾私信【Mic】或者评论区留言。

版权申明:本博客所有文章除特地申明外,均采纳 CC BY-NC-SA 4.0 许可协定。转载请注明来自 Mic 带你学架构
如果本篇文章对您有帮忙,还请帮忙点个关注和赞,您的保持是我一直创作的能源。欢送关注同名微信公众号获取更多技术干货!

正文完
 0