单例模式还是多例模式:
- 对象在 new 容器的时候创建 —— 更适合单例模式
- 对象在我们需要用到,也就是根据id去获取的时候创建 —— 更适合多例模式
对于具体实现来说,ApplicationContext接口是1,而更顶层的BeanFactory接口是2
但对于一般使用,用1,因为底层接口往往更加完善,并且我们也可以通过配置实现多例
Spring对bean的管理细节
- 创建bean的三种方式
a.使用默认构造函数(一旦写了自己的构造函数就没法使用)(经验证,不是完全没法使用,是一旦自己写的那个构造函数带输入参数就用不了)(但是可以做到其他的参数配置)
b.使用某个类中的方法创建对象,并存入bean容器
c.使用某个类中的静态方法(则不需要先构造该类本身的实例)
bean的作用范围
- 生命周期
singleton : 生命周期跟随容器的生命周期,容器生则生,容器死则死
prototype:生命周期跟随引用的机制,当我们需要并把它从factory中取出来后,它就跟随那个引用了,并且等待jvm回收