码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Spring】Bean 的作用域


    🎈博客主页:🌈我的主页🌈
    🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏
    🎈本文由 【泠青沼~】 原创,首发于 CSDN🚩🚩🚩
    🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页


    目录

    • 🌟 一、XML 配置
    • 🌟 二、Java 配置
    • 🌟 三、singleton 和 prototype 的区别


    🌟 一、XML 配置

    默认情况下,我们注册到 Spring 容器中的 Bean 是单例的,多次获取,拿到的是同一个实例

    如果是 XML 配置,可以通过如下方式修改 scope 属性:

    
    <beans xmlns="http://www.springframework.org/schema/beans"
    	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean class="com.dong.Cat" id="cat" scope="prototype"/>
    beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    主要就是修改 scope 属性的值。
    scope 属性的取值,一共有六种

    取值含义生效条件
    singleton表示这个 Bean 是单例的,在 Spring 容器中,只会存在一个实例
    prototype多例模式,每次从 Spring 容器中获取 Bean 的时候,才会创建 Bean 的实例出来
    request当有一个新的请求到达的时候,会创建一个 Bean 的实例处理web 环境下生效
    session当有一个新的会话的时候,会创建一个 Bean 的实例出来web 环境下生效
    application这个表示在项目的整个生命周期中,只有一个 Beanweb 环境下生效
    gloablsession有点类似于 application,但是这个是在 portlet 环境下使用的

    🌟 二、Java 配置

    Java 配置可以通过 @Scope 注解去设置作用域

    public class JavaConfig {
    	@Bean
    	@Scope("prototype")
    	Cat cat(){
    		Cat cat = new Cat();
    		return cat;
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    🌟 三、singleton 和 prototype 的区别

    • 如果 scope 为 singleton,则 Spring 容器在启动的时候,就会完成 Bean 的初始化;而 prototype 则是在每一次获取 Bean 的时候,Spring 容器才会去初始化 Bean
    • 在具体的项目中使用的时候,要注意 scope 为 prototype 的 Bean 要注意销毁
  • 相关阅读:
    css 雷达扫描图
    C#系统托盘功能实现
    u盘损坏后如何恢复数据?
    适合汽车应用的MAX49017ATA/VY、MAX40025AAWT、MAX40025CAWT、MAX40026ATA/VY(线性)微功耗比较器
    requests爬虫详解
    【多线程】线程安全(重点)
    Vue3+Elementplus引入面包屑功能
    数据结构 | 数据结构的“基本概念”和“术语”
    洛谷 P1303:A*B Problem(高精度×高精度)
    基于JAVA的网络通讯系统设计与实现(论文+系统)
  • 原文地址:https://blog.csdn.net/m0_46635265/article/details/133034177
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号