Bean 作用域和生命周期

Bean的定义: 一个对象被使用多次,就可以称为这个对象为Bean

Bean作用域定义:Bean 在 Spring 整个框架中的行为模式,比如 singleton 单例作用域,表示 Bean 在整个 Spring 中只有一份,是全局共享的,当其他人修改了这个对象的值后,另一个人读取到的就是修改后的值

Bean 的六种作用域

1.singleton: 单例作用域(Spring默认是单例模式,在 整个Spring 框架中 只有一份Bean,只存在一个实例,获取Bean都是同一个对象,类似于浅拷贝)
2.prototype: 原型作用域 (多例作用域,Spring框架中有一份最初的Bean,每次对该作用域下的 Bean 请求都会创建一个新的实例,类似于深拷贝,每次从Spring拿的Bean对象只是bean对象的一份拷贝对象)
3.request:请求作用域(每次http 请求都会创建一个新的实例,类似于prototype,一次请求和响应共享一个Bean,只有在Spring MVC中才能使用)
4.session:会话作用域(session,每次 Session 会话共享一个 Bean [Spring MVC])
5.application:全局作用域(一个http servlet context 中共享一个 bean) [Spring MVC]
6.websocket:网络长连接(只适用于Spring WebSocket使用)

设置作用域

1.使用@Scope,在括号里面以字符串形式写入想要的作用域
2.使用@Scope,在括号里使用ConfigurableBeanFactory.想要的模式

Spring 执行流程

1.启动容器(在启动类执行ApplicationContext的时候启动容器,加载配置文件)


2.根据配置文件完成Bean初始化(看加载文件有没有Bean,查看扫描路径下的类有没有使用注解@Controller @Service @component @Repository @Configurartion @Bean)

3.注册Bean对象到容器中(如果Bean对象需要使用其他Bean对象作为属性,可以使用注解@Autowired @Resource)

4.装配Bean的属性 

Bean 生命周期

1.实例化 Bean(给Bean 分配内存空间)
2.设置属性(先设置属性,是因为属性在初始化的时候可能会被用到)
3.Bean 初始化
   3.1.执行各种通知
   3.2.执行初始化前置方法
   3.3.执行初始化方法
(1:注解方式 @PostConstruct 2:xml方式 init-method方法)
   3.4执行初始化后置方法
4.使用Bean
5.销毁Bean
(1:注解方式@PreDestroy 2:xml方式)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值