• Spring中Bean的单例和多例


    在Spring中,bean可以被定义为两种模式:prototype(多例)和singleton(单例)

    singleton(单例):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例。

    prototype(多例):对这个bean的每次请求都会创建一个新的bean实例,类似于new。

    Spring bean 默认是单例模式。


    结论:二个变量指向一个对象。

    将配置文件改为:

    结论:每次访问bean,均创建一个新实例。

    此外,在springBoot项目中如果要配置单例或者多例,可以在对应的bean上加一个@scope()注解

     

    Spring bean的线程安全

    无状态Bean,也就是线程中的操作不会对Bean的成员执行查询以外的操作,那么这个单例Bean是线程安全的。比如Spring mvc 的 Controller、Service、Dao等,这些Bean大多是无状态的,只关注于方法本身。

    有状态对象(Stateful Bean) :就是有实例变量的对象,可以保存数据,是非线程安全的。

     对于有状态的bean,Spring官方提供的bean,一般提供了通过ThreadLocal去解决线程安全的方法,比如RequestContextHolder、TransactionSynchronizationManager、LocaleContextHolder等。

     

    https://blog.csdn.net/qq_35860138/article/details/88798726

  • 相关阅读:
    Nginx日志管理
    Nginx负载均衡
    Nginx 缓存
    Nginx代理服务器
    Nginx搭建 Web服务
    Nginx HTTP模块
    洛谷P1012拼数
    洛谷 P1876 开灯
    洛谷P2084 进制转化
    关于typedef的用法
  • 原文地址:https://www.cnblogs.com/dingpeng9055/p/16288208.html
Copyright © 2020-2023  润新知