Spring的执行流程 & Bean的作用域与生命周期

目录

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.直接设置

Spring的执行流程 & Bean的作用域与生命周期_第1张图片

2.枚举设置

怕拼错单词的就可以通过这个方法设置

Spring的执行流程 & Bean的作用域与生命周期_第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 注解等方式实现。

你可能感兴趣的:(JavaWeb,spring,java)