- Bean的作用域
bean的作用域有五种,分别为singleton,prototype,request,session,global session。其中request,session,global session是基于web。
作用域 | 描述 |
singleton | 在每个Spring IOC容器中一个bean定义对应一个对象实例。 |
prototype | 一个bean定义对应多个对象实例。 |
request | 在一次HTTP请求中,一个bean定义对应一个实例:即每次HTTP请求将会有各自的bean实例,它们依据某个bean定义创建而成。该作用域仅在基于web的Spring ApplicationContext情形下有效。 |
session | 在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。 |
global session | 在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于web的Spring ApplicationContext情形下有效。 |
- 生命周期回调
Spring提供了几个标志接口,用来改变容器中bean的行为:它们包括InitializingBean和DisposableBean。
初始化回调:InitializingBean接口中afterPropertiesSet()方法。在XML配置文件中通过指定init-method属性来完成(<beans/>元素中的default-init-method属性)。@PostConstruct
析构回调:DisposableBean接口中destroy()方法。在XML配置文件中通过指定destroy-method属性来完成(<beans/>元素中的default-destroy-method属性)。@PreDestroy
使用的依次顺序:
@PostConstruct----->InitializingBean接口中的afterPropertiesSet()方法----->指定init-method属性
@PreDestroy----->DisposableBean接口中destroy()方法----->指定destroy-method属性