目录
Bean的作用域
设置作用域
Spring的执行流程
Bean的生命周期
Bean的作用域
Bean的作用域是指, Bean在Spring框架中的某种行为模式
1.singleton 单例模式
singleton是Spring中的默认的Bean作用域,它表示在整个应用程序中只存在一个Bean实例,每 次请求该Bean实例时都会返回同一个Bean
2.prototype 原型模式(多例模式)
prototype表示每次请求该bean时,都会重新创建一个实例,每个bean实例都有自己的属性和状态,彼此之间是相互独立的
3.request 请求
request表示在一次http请求中,只会存在一个bean实例,在同一个请求里多次请求该bean都会指向同一个实例.在不同的http请求里,bean的实例是相互独立的
4.session 会话
session表示在一次http session里只会存在一个bean实例,同一个session里多次请求该bean都会返回同一个bean实例.在不同的session会话里,bean的实例是相互独立的
5.application 全局
application表示在一个servlet context只存在一个bean实例,该作用域在 Spring ApplicationContext 上下文中有效
6.websocket
websocket 表示在一个 WebSocket 中只存在一个 Bean 实例。该作用域只在 Spring ApplicationContext 上下文中有效。
设置作用域
通过@Scope注解来设置作用域
1.直接设置
2.枚举设置
怕拼错单词的就可以通过这个方法设置
3.通过xml配置文件设置
Spring的执行流程
1.启动容器
2.读取Spring配置并实例化Bean
根据扫描路径,找到所有含有五大类注解和方法注解的Bean对象,然后实例化Bean(分配内存空间)
3.将Bean加入到容器中
4.装配Bean属性
给当前类的Bean对象装配属性,通过@Autowried @Resource 注解 注入.
Bean的生命周期
在 Spring 中,Bean 的生命周期指的是 Bean 实例从创建到销毁的整个过程。Spring 容器负责管理 Bean 的生命周期,包括实例化、属性赋值、初始化、销毁等过程。
Bean 的生命周期可以分为以下几个阶段:
1.实例化
Spring容器启动时,会根据配置文件实例化Bean对象,就是为Bean分配内存空间.根据Bean的作用域的不同,实例化的方式也会不同. 如singleton就是立即实例化,prototype则是在被请求时才会实例化
2.属性赋值
Spring通过注解设置的属性进行依赖注入( DI ), 有三种注入方式:属性注入,setter注入,构造方法注入
3.初始化
3.1执行各种通知
3.2执行初始化前置方法
3.3初始化
3.4执行初始化后置方法
4.使用
在初始化完成后,Bean就可以被应用程序调用了.应用程序可以通过Spring容器获取Bean的实例,并调用Bean的各种方法
5.销毁
在应用程序关闭时,Spring 容器会自动销毁所有的 Bean 实例。Bean 的销毁方法可以通过实现 DisposableBean 接口、@PreDestroy 注解等方式实现。