今天收到一位工作4年的粉丝的面试题。问题是:“Spring中有哪些方式可以将bean注入到IOC容器中”。他说这个问题是所有面试题中回答得最好的,但是看面试官的表情,好像不对劲。我问他怎么回答的,他说:“接口注入”,“Setter注入”,“构造函数注入”。为什么不?我们来看看普通人和专家的回答。普通人:嗯。....师父:嗯,有7种方法可以将bean注入到IOC容器中。使用xml声明bean的定义。Spring容器启动时会加载并解析xml,将bean加载到IOC容器中。使用@ComponentScan注释扫描声明@Controller、@Service、@Repository和@Component注释的类。使用@Configuration注解声明配置类,使用@Bean注解实现bean的定义。这种方式其实是xml配置方式的一种演变,是Spring进入非配置时代的里程碑。使用@Import注解导入配置类或普通bean,使用FactoryBean工厂bean动态构建Bean实例。SpringCloudOpenFeign中的动态代理实例是使用FactoryBean实现的。实现ImportBeanDefinitionRegistrar接口以动态注入Bean实例。SpringBoot中的这个启动注解很有用。实现ImportSelector接口,动态批量注入配置类或Bean对象。这在SpringBoot中的自动装配机制中很有用。以上是我对这个问题的理解。干了4年,IOC和DI都没搞清楚。作为一个面试官,我想不能让你失望。这个话题也很有意义。想要更优雅地解决一些实际业务问题,首先要有足够的工具积累。你有没有想过Bean的注入方式有那么多种,还有一些方式你没听过?需要专家面试资料(内含阿里巴巴内部10万字面试资料)或者想咨询不懂的技术面试题的可以后台私信【Mic】或者评论区留言。版权声明:除特别声明外,本博客所有文章均采用CCBY-NC-SA4.0许可协议。转载请注明来自Mic带你学建筑!如果本文对您有帮助,请给个关注和点赞。您的坚持是我不断创作的动力。欢迎关注同名微信公众号获取更多技术干货!
