当前位置: 首页 > 后端技术 > Java

【Java面试】Spring中BeanFactory和FactoryBean的区别

时间:2023-04-02 09:15:45 Java

一位工作六年多的爱好者,胸有成竹的去京东面试。然后在Spring遇到一个问题卡住了,唉,我跟他说,都6年了,Spring还没搞定?那么如何让面试官把它传递给你呢?本题是:Spring中BeanFactory和FactoryBean的区别。好吧,让我们看看普通人和专家对这个问题的回答。普通人:嗯。.........师父:这个问题我从几个方面来回答。首先,Spring中最核心的功能就是IOC容器。所谓IOC容器,本质上就是Bean容器或Bean工厂。它可以根据xml中声明的Bean配置加载并初始化bean,然后BeanFactory生产出我们需要的各种bean。所以我对BeanFactory有两种理解。BeanFactory是所有SpringBean容器的顶级接口。它为Spring容器定义了一套规范,并提供了getBean等方法从容器中获取指定的Bean实例。BeanFactory在生成bean的同时,也提供了解决bean之间依赖注入的能力,也就是所谓的DI。FactoryBean是一个工厂bean,它是一个接口,主要作用是动态生成某类bean实例,也就是我们可以自定义一个bean,加载到IOC容器中。它有一个重要的方法getObject(),用来实现动态构建Bean的过程。客户端的代理类SpringCloud中的OpenFeign组件是使用FactoryBean实现的。以上是我对这个问题的理解。总结一下这个问题,只要稍微看一下Spring框架的源码,无论如何都能回答出来。关键是你是否愿意强迫自己去学习一些工作中不常用的技巧来提升自己。在我看来,薪水和能力是等价的交换。在市场经济下,有能力的人普遍都想拿到更高的薪水,这显然是不可能的!需要专家面试资料(附阿里巴巴内部10万字面试资料)或者想咨询不懂的技术面试题的可以私信我或者在评论区留言。版权声明:除特别声明外,本博客所有文章均采用CCBY-NC-SA4.0许可协议。转载请注明来自Mic带你学建筑!如果本文对您有帮助,请给个关注和点赞。您的坚持是我不断创作的动力。欢迎关注同名微信公众号获取更多技术干货!

最新推荐
猜你喜欢