栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring高级49讲-第八讲:Scope 笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring高级49讲-第八讲:Scope 笔记

第八讲:Scope

目录

第八讲:Scope

学习目标

一、Scope类型有那些

1.1 request, session, application的演示

二、scope失效分析

三 解决Scope失效的方法

  1.使用@Lazy 进行代理生成对象

2.使用@Scope的属性proxyMode=ScopedProxyMode.TARGET_CLASS

3.使用工厂来创建 

 4.直接使用容器中获取

总结



学习目标

1.Scope类型有那些

    singleton, prototype, request, session, application

2.在singleton中使用其他几种scope的注意事项

3.scope销毁

   单例是 容器创建就将所有的单例都创建出来

              容器关闭的时候进行销毁

   多例是 每次使用的时候会进行创建

           是利用垃圾回收机制进行销毁

4.实战:scope失效分析

一、Scope类型有那些

一共有五种   singleton, prototype, request, session, application

1.1 request, session, application的演示

request是一次请求  

session一个会话

application应用

在同一个网页中刷新页面--即请求改变  因此request会发生变化

 

 在不同的浏览器上访问页面,因为session不同  因此session会发生变化

 

也为都是一个容器中,因此application不变 

二、scope失效分析

 

正常来将 f1是多例的  我多次输出  返回的f1对象应该是不同的

但是结果确是相同的对象

 为什么会出现这种情况呢?

是因为E是单例的,它是在容器创建的时候进行创建,并且只是注入一次依赖

因此已经确定了f1是同一个   因此每次输出都是同一个对象

那么如何进行解决这个问题  使每次输出的f1是不同的对象呢?

三 解决Scope失效的方法

  1.使用@Lazy 进行代理生成对象

2.使用@Scope的属性proxyMode=ScopedProxyMode.TARGET_CLASS

 

3.使用工厂来创建 

 4.直接使用容器中获取



总结

1.Scope类型有那些

    singleton, prototype, request, session, application五种

2.在singleton中使用其他几种scope的注意事项

3.scope销毁

   单例是 容器创建就将所有的单例都创建出来

              容器关闭的时候进行销毁

   多例是 每次使用的时候会进行创建

           是利用垃圾回收机制进行销毁

4.实战:scope失效分析

   因为scope是单例的时候只是在容器创建的时候进行创建,并且只进行一次依赖注入

  所以多例是失效的

解决方法 4种

@Lazy   

.使用@Scope的属性proxyMode=ScopedProxyMode.TARGET_CLASS

使用 ObjectFactory 类的getObject()

使用容器的getBean()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/930264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号