gpt4 book ai didi

java - Spring 如何在底层维护单例、原型(prototype)……?

转载 作者:行者123 更新时间:2023-11-30 07:38:45 25 4
gpt4 key购买 nike

我已经使用 Spring 一段时间了,但我真的不知道当我要求 Spring 在多个不同的服务类中注入(inject)一个 DAO 时,它总是同一个类,或者如果我需要原型(prototype)是一个新的每次等等 session 范围等。任何人都可以分享一些关于特别是“单例”的信息,因为它是最常用的,并且还谈到了可能包含状态但单例的服务层类的线程安全问题

最佳答案

我不想在这里成为一个“LMGTFY” SCSS ,但我怀疑有人会比 Spring documentation on bean scopes 更好地解释它。 .

不过,作为快速复述来解决您的具体问题:

  1. 单例 bean(这是默认范围)通常在加载时由 bean 工厂预实例化(除非另外配置)。将其视为按 ID 划分的 bean Map。当您请求一个 bean(直接或作为其他 bean 的依赖项或当它 Autowiring 时)时,它是从该映射中获得的。
  2. 原型(prototype) bean 没有预先实例化;每次您请求原型(prototype) bean 时,Spring 都会创建并初始化一个新实例。
  3. 就多线程而言,Dean J(删除了他的答案)是正确的 - 您的服务不应保持状态,或者如果保持状态,则应适当同步。

关于java - Spring 如何在底层维护单例、原型(prototype)……?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1567764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com