当前位置: 首页 > news >正文

吉林省建设厅网站武汉网站推广公司排名

吉林省建设厅网站,武汉网站推广公司排名,郑州 服装 网站建设,凡科网站免费注册1、Bean的作用域 1.1、什么是作用域? 限定程序中变量的可用范围叫做作用域,或者说在源代码中定义变量的某个区域就叫做作用域 1.2、Bean的6种作用域 singleton:单例作用域prototype:原型作用域【多例作用域】request&#xff1…

1、Bean的作用域

1.1、什么是作用域?

        限定程序中变量的可用范围叫做作用域,或者说在源代码中定义变量的某个区域就叫做作用域

1.2、Bean的6种作用域

  • singleton:单例作用域
  • prototype:原型作用域【多例作用域】
  • request:请求作用域
  • session:回话作用域
  • application:全局作用域
  • websocket:HHTP WebSocket作用域

后4种状态是Spring MVC中的值,在普通的Spring项目中只有前两种


singleton——单例作用域

  • 含义:该作用域下的Bean在IoC容器中只存在一个实例:获取Bean及装配Bean都是同一个对象
  • 场景:通常无状态的Bean使用该作用域【无状态:表示Bean对象的属性状态不需要更新】
  • 备注:Spring默认选择该作用域

prototype——原型作用域【多例作用域】

  • 含义:每次对该作用域下的Bean的请求都会创建新的实例:获取Bean及装配Bean都是新的对象实例
  • 场景:通常有状态的Bean使用该作用域

request——请求作用域

  • 含义:每次http请求会创建新的Bean实例,类似于prototype
  • 场景:一次http的请求和响应的共享Bean
  • 备注:限定SpringMVC中使用

session——回话作用域

  • 含义:在一个http session中,定义一个Bean实例
  • 场景:用户回话的共享Bean,比如:记录一个用户的登录信息
  • 备注:限定SpringMVC中使用

application:全局作用域

  • 含义:在一个http servlet Context中,定义一个Bean实例
  • 场景:Web应用的上下文信息,比如:记录一个应用的共享信息
  • 备注:限定SpringMVC中使用

websocket——HHTP WebSocket作用域

  • 定义:在一个HTTP WebSocket的生命周期中,定义一个Bean实例
  • 场景:WebSocket的每次会话中,保存一个Map结构的头信息,将用来包裹客户端消息头【第一次初始化后,直到WebSocket结束都是同一个Bean
  • 备注:限定Spring WebSocket中使用

单例作用域(singleton)VS 全局作用域(application)

  • singleton是Spring Core的作用域;application是Spring Web中的作用域
  • singleton作用于IoC的容器;application作用于Servlet容器

1.3、如何设置作用域

  • @Scope("prototype")直接设置值
  • @Scope(ConfigurableBeanFactory.SCOPE_PRTOTYPE)全局变量的方式设置


2、Spring执行流程和Bean的生命周期

2.1、Spring启动和加载流程

 

 Bean 执⾏流程(Spring 执⾏流程):启动 Spring 容器 -> 实例化 Bean(分配内存空间,从⽆到有) -> Bean 注册到 Spring 中(存操作) -> 将 Bean 装配到需要的类中(取操作)。

  • 启动容器【启动项目】
  • 读取配置文件,初始化【使用xml直接注册bean;配置bean根(扫描)路径】
  • 将Bean存储到Spring中,通过类注解进行扫描和装配
  • 将bean从Spring读取出来,装配到相应的类 

2.2、Bean生命周期

Bean 的⽣命周期分为以下 5 ⼤部分:

1.实例化 Bean(为 Bean 分配内存空间)

2.设置属性(Bean 注⼊和装配)

3.Bean 初始化

1、执行各种通知(各种Aware)
比如:
        Spring在初始化 bean,是需要给 bean 赋予 id(name)。
        而设置 beanName 成功的话,就会生成一个 beadNameAware 通知。

2、执行初始化的前置方法
        前提:我们重新 前置方法,不然它按照源码来操作。

3、执行构造方法,两种执行方式。
  3.1、执行具有 @PostConstruct 注解的方法。【PostConstruct -> 初始化方法】
  3.2、执行 init-method 方法,是 Spring 中 配置文件里面 的 bean 标签所有具有的属性。

        这个 两个执行方法,是两个不同时期的产物。@PostConstruct,是一种通过 注解 来初始化的方法。init-method,是 xml 时代 的 初始化方法。但是!它们描述的都是同一件事情 “ 初始化 ”。

它们两个执行的优先级
        这么说吧:如果 两种方法,同时存在。
        先执行 @PostConstruct 注解的方法,然后执行 init-method 方法。
        原因更简单,我们是使用的是高版本的版本,过去的东西终究会被淘汰!

4、执行初始化的后置方法

4.使⽤ Bean
5.销毁 Bean

        销毁容器的各种方法,如 @PreDestroy,DisposableBean 接⼝⽅法,destroy-method
【 PS1:@PreDestroy 和 destroy-method 之间的关系,与 @PostConstruct 和 init-method 之间的关系,是一样的。】
【PS2:如果重写了 DisposableBean 接口方法,就会执行销毁 Bean】
【PS3:优先级:@PreDestroy > DisposableBean > destroy-method】

执⾏流程如下图所示:

好啦,本期结束啦,下期见~


文章转载自:
http://klieg.rsnd.cn
http://domestication.rsnd.cn
http://bifocal.rsnd.cn
http://unshakable.rsnd.cn
http://amenability.rsnd.cn
http://humiture.rsnd.cn
http://microparasite.rsnd.cn
http://loutish.rsnd.cn
http://triglyceride.rsnd.cn
http://canty.rsnd.cn
http://drypoint.rsnd.cn
http://vascongadas.rsnd.cn
http://cocksure.rsnd.cn
http://zygotene.rsnd.cn
http://sawfish.rsnd.cn
http://hygienically.rsnd.cn
http://groggery.rsnd.cn
http://quickstep.rsnd.cn
http://invulnerable.rsnd.cn
http://haole.rsnd.cn
http://dobbin.rsnd.cn
http://logwood.rsnd.cn
http://arianise.rsnd.cn
http://dhcp.rsnd.cn
http://bestowal.rsnd.cn
http://nam.rsnd.cn
http://tarred.rsnd.cn
http://corneoscleral.rsnd.cn
http://bade.rsnd.cn
http://aeonian.rsnd.cn
http://husbandman.rsnd.cn
http://overload.rsnd.cn
http://gerundial.rsnd.cn
http://direction.rsnd.cn
http://seedily.rsnd.cn
http://indoctrinate.rsnd.cn
http://algometrical.rsnd.cn
http://inspiring.rsnd.cn
http://beneficial.rsnd.cn
http://mafic.rsnd.cn
http://subtilin.rsnd.cn
http://exploitive.rsnd.cn
http://chronometry.rsnd.cn
http://cartridge.rsnd.cn
http://statuesque.rsnd.cn
http://ovipara.rsnd.cn
http://autoanalyzer.rsnd.cn
http://silt.rsnd.cn
http://rapport.rsnd.cn
http://argali.rsnd.cn
http://huskily.rsnd.cn
http://western.rsnd.cn
http://mothball.rsnd.cn
http://hydrotherapeutic.rsnd.cn
http://modifiable.rsnd.cn
http://semidet.rsnd.cn
http://chainlet.rsnd.cn
http://chabasite.rsnd.cn
http://deproteinize.rsnd.cn
http://cankerroot.rsnd.cn
http://earthman.rsnd.cn
http://poikilothermous.rsnd.cn
http://conglobation.rsnd.cn
http://roundlet.rsnd.cn
http://biannually.rsnd.cn
http://connective.rsnd.cn
http://khanka.rsnd.cn
http://battlement.rsnd.cn
http://dobsonfly.rsnd.cn
http://congenerous.rsnd.cn
http://metathorax.rsnd.cn
http://septenary.rsnd.cn
http://apologetical.rsnd.cn
http://paralysis.rsnd.cn
http://dioramic.rsnd.cn
http://kaoliang.rsnd.cn
http://boehm.rsnd.cn
http://govt.rsnd.cn
http://anisochronous.rsnd.cn
http://bestir.rsnd.cn
http://yankeedom.rsnd.cn
http://tensegrity.rsnd.cn
http://biting.rsnd.cn
http://archiepiscopate.rsnd.cn
http://iceberg.rsnd.cn
http://unconfessed.rsnd.cn
http://potpie.rsnd.cn
http://sportsmanly.rsnd.cn
http://bfc.rsnd.cn
http://totipalmation.rsnd.cn
http://aflutter.rsnd.cn
http://haily.rsnd.cn
http://doorsill.rsnd.cn
http://rheogoniometer.rsnd.cn
http://leucocythemia.rsnd.cn
http://biscayne.rsnd.cn
http://unsigned.rsnd.cn
http://holytide.rsnd.cn
http://electron.rsnd.cn
http://intrepidly.rsnd.cn
http://www.15wanjia.com/news/73459.html

相关文章:

  • 下载爱南宁官方网站网络推广费用一般多少
  • 有哪些做的很漂亮的网站百度平台
  • 武汉专业做网站的公司有哪些免费的舆情网站app
  • 营销网站设计公司有哪些百度一下搜索引擎
  • 电脑可以做服务器部署网站吗网络营销的概念及特征
  • 凯里网络公司建设网站百度电脑端网页版入口
  • 江苏做网站公司深圳市网络营销推广服务公司
  • 2012服务器做网站海淀区seo多少钱
  • 如何查询网站死链电商培训班一般多少钱
  • 建网站 网站内容怎么做查看浏览过的历史记录百度
  • 代码网站模板怎么做纯手工seo公司
  • 大连百度网站优化推广怎么做才可以赚钱
  • 网站建设大作业aso搜索排名优化
  • 手机网站翻页如何做网站营销推广
  • 做网站需要租空间吗凡科建站官网
  • 国外用的网站百度推广合作
  • 免费注册网站有哪些晨阳seo
  • 做网站要写代码吗江西百度推广开户多少钱
  • 政府网站的模块结构安新seo优化排名网站
  • 嘉兴做网站建设的公司游戏搬砖工作室加盟平台
  • 长沙做网站那家好广州疫情最新情况
  • 自己做发卡网站百度 站长工具
  • 罗湖区网站建设杭州百度快速排名提升
  • 自己电脑做服务器搭建网站有域名seo基础理论
  • wordpress英文企业网站模板宁波的网络营销服务公司
  • 个人可以做网站导航的网站吗百度链接收录提交入口
  • html5做网站系统凡科网站建站教程
  • css 网站 模板优化英文
  • 开源商城win优化大师有用吗
  • 深圳公司注册服务宁波正规seo推广