yuehoiwai 2019-07-17 04:16 采纳率: 0%
浏览 309
已采纳

spring如何管理已持久化的bean

剛學spring以及spring boot框架,有一個問題困惑我:

如果使用了spring或spring boot框架,在代碼中如果我需要用某一個bean 我就不需要自己去new一個,容器會替我做這個事情,對吧?

但是,如果我所需要的bean 已經持久化了,這個bean 還是會交給容器去管理嗎?

另一種情形是一個new的bean 依賴一個已經持久化了的bean ,還是由容器來裝配和管理嗎?

  • 写回答

3条回答 默认 最新

  • 毕小宝 博客专家认证 2019-07-17 09:19
    关注

    先说下第一个问题,Spring 和 SpringBoot 的关系,先有 Spring 再有 SpringBoot 的,后者是对 Spring 的简化,核心还是 Spring 。Spring 的本质是一个 Bean 工厂,它实例化对象时是根据 xml 配置来进行的,有懒加载的说法。你需要一个 实例的时候 通过 BeanFactory 的 getBean 就能得到一个对象,没错,是这个流程。它有几种创建模式单例、prototype 等类型。

    第二个问题:持久化 Bean 应该是从数据库获取的或者手动创建后入库的,一般不会定义为 Spring 托管的类。
    new 一个 Bean 的时候,依赖了 已经持久化的 Bean ,如果这些类在 Spring 的 配置文件中注册过了,且是通过 getBean 方式获取的,就是被Spring 管理,否则就不是。

    还有一点就是,即使被容器托管的 bean ,你也是可以手动 new 这样一个对象,你自己创建的就跟容器没啥关系了,即容器提供实例创建服务,但是你可以选择不用的!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器