Bean是Spring框架中的一个概念,指的是由Spring容器管理的对象。通常情况下,Bean是应用程序中的一个对象,由Spring容器在运行时创建、组装、管理和销毁。Bean可以是任何Java对象,包括POJO、组件、服务等等。
Bean的生命周期包括以下阶段:
- 实例化:Spring容器创建一个Bean的实例。
- 属性赋值:Spring容器将配置文件或注解中指定的属性值注入到Bean实例中。
- 初始化:Spring容器调用Bean的初始化方法,可以自定义一个初始化方法,也可以使用Spring提供的初始化回调接口。
- 使用:应用程序使用Bean对象。
- 销毁:当Bean不再需要时,Spring容器调用Bean的销毁方法,可以自定义一个销毁方法,也可以使用Spring提供的销毁回调接口。
Bean的作用域定义了Bean的生命周期,即Bean在容器中存在的范围。Spring框架支持以下作用域:
- singleton:每个容器只有一个实例。
- prototype:每次请求都会创建一个新的实例。
- request:每个HTTP请求都会创建一个新的实例,仅适用于Web应用程序。
- session:每个HTTP会话都会创建一个新的实例,仅适用于Web应用程序。
- global session:用于Portlet应用程序,表示整个Portlet应用程序中只有一个实例。
Bean的作用域可以通过配置文件或注解进行定义。在Spring容器中,Bean的作用域是由BeanFactory和ApplicationContext接口定义的。其中,BeanFactory提供了基本的容器功能,而ApplicationContext扩展了BeanFactory接口,提供了更多的功能,例如国际化、事件处理等。