CS-Notes 学习笔记
面试常问Java 后端 · Spring 与设计模式

IoC 和依赖注入是什么?@Autowired 和 @Resource 有什么区别?

先自己想一想,再看参考要点

参考要点

  • 控制反转(IoC)指对象不再自己创建所依赖的对象,由容器创建好之后交给它,这个过程称为依赖注入
  • 好处是对象只依赖接口,替换实现、测试时注入模拟对象都不用改代码,创建、作用域和生命周期由容器统一管理
  • 声明 Bean 用 @Component 和派生的 @Service、@Repository、@Controller,第三方库的类在 @Configuration 类中用 @Bean 方法声明
  • 通常推荐构造器注入,依赖可以声明为 final,对象创建出来就完整可用
  • @Autowired 先按类型查找,找到多个时看 @Primary 和名称,可以用 @Qualifier 指定,@Resource 指定了 name 时按名称,否则先按字段名再按类型,不能用在构造器上
在学习站中自测这道题

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。