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条)

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容