Spring容器

Spring容器怎样去创建Bean对象并且管理的?
BeanFactory

  • 读取Bean对象的配置信息
  • 加载Bean对象并实例化
  • 建立关联关系
  • 管理Bean对象生命周期

ApplicationContext:是BeanFactory的一个子接口,并支持了更多内容,因此现在都用它

面试题:BeanFactory的原理是什么?(其实没什么意义)

Spring框架的一个发展趋势就是所有的配置简单化,其中一个最主要的标志就是@AutoWired,用一种默认的方式将对象和对象之间的耦合关联起来(绑依赖注入)

@Component
public class Boss_constructor {
    private Car car;
    private Office office;


    @Autowired
    public Boss_constructor(Car toyota, Office office) {
        this.car = toyota;
        this.office = office;
    }
}

这样Spring容器再扫描Bean对象时就会将依赖注入,比如先寻找Car类的Bean对象,因为Car是一个接口可能有多个实现,如果找到多个Car类的bean对象,那就按照对象名toyota来匹配,如果匹配不到就注入空值。

还有一种方法是对属性加注解,但这种方法不推荐,因为破坏了封装性,因为注入的方式就应该是构造方法或是set(set其实一般也不用,偶尔会在类之间循环依赖的时候用)
但是可以用Resource???(todo)

生命周期

Spring对象实在容器中创建的,容器中留了可以让你写代码的地方,称为接口。

容器级生命周期接口
Bean级生命周期接口
posted @ 2022-12-02 23:11  antidogmatist  阅读(16)  评论(0)    收藏  举报