一、前言
1 |
|
二、创建bean的三种方式
其实,有三种配置方式来创建bean:
(一)使用默认构造函数创建
这种方式就是上述案例中使用的方式,只需要使用一个bean标签并使用其id和class属性即可,不做过多叙述。
(二)使用普通工厂中的方法创建对象
由于有时候我们会使用外部jar包中的类来创建对象,因此知道在这种情况下如何进行配置也是非常重要的。
现在假设有一个外部jar包中的类如下:
1 | /** |
可以看到该工厂类有一个获取AccountServiceImpl对象的方法,那么如何进行配置呢?
其实也不难,分两步即可:
a. 先配置工厂类的对象
b. 配置AccountServiceImpl对象
1 |
|
(三)使用工厂中的静态方法创建对象
方式三和方式二有点相似,因此先假设有一个外部jar包中的类:
1 | public class StaticFactory { |
由于该类是static修饰的,因此就简单一点,其配置方式如下:
1 |
|
三、bean的作用范围
当我们需要指定bean对象的作用范围时,可以使用bean标签的scope属性。如:
1 | <bean id="accountService" class="com.zuobiao.service.impl.AccountServiceImpl" scope="prototype"></bean> |
该属性的所有取值如下:
1 | singleton:单例的(默认值) |
四、bean的生命周期
由于bean对象的创建方式可能是单例模式也有可能是多例模式,因此其生命周期需要分情况进行讨论:
(一)单例模式
出生:当容器创建时对象被创建
活着:只要容器还在,对象一直活着
死亡:容器销毁,对象消亡
总结:单例对象的生命周期和容器相同
(二)多例模式
出生:当我们使用对象时spring框架为我们创建
活着:对象只要是在使用过程中就一直活着。
死亡:当对象长时间不用,且没有别的对象引用时,由Java的垃圾回收器回收
Java新手,若有错误,欢迎指正!