码农知识堂 - 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 要注意销毁
  • 相关阅读:
    定时器的使用
    给课题组师弟师妹的开荒手册(终篇)
    STM32G030F6 (SOP-20)Cortex ® -M0+, 32KB Flash, 8KB RAM, 17 GPIOs
    应用程序转换工具Unite mac中文版软件特点
    NeuroImage | 右侧颞上回在语义规则学习中的作用:来自强化学习模型的证据
    C++ STL 用法解释
    CSS标准流
    科学清理Windows系统垃圾,让你的电脑性能快如火箭
    【Spring Boot】使用WebSocket协议完成来单提醒及客户催单功能
    Typora基本使用方法
  • 原文地址:https://blog.csdn.net/m0_46635265/article/details/133034177
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号