gpt4 book ai didi

java - 如何在 spring mvc 中重新加载/重新创建 sessionFactory bean 而不刷新整个 web 应用程序上下文?

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:27 25 4
gpt4 key购买 nike

在 Spring 与 hibernate 集成,我有以下要求。我需要重新加载/重新创建/刷新/更新唯一的 sessionFactory bean。

但是在使用时

((ConfigurableApplicationContext)ApplicationContextProvider.getApplicationContext()).refresh();

它重新加载整个应用程序上下文(所有 bean)。

能否请任何人帮我根据某些条件(例如用户在 UI 级别选择/单击某个选项)仅重新加载一个 Bean

谢谢你..

最佳答案

这不是一个直接的答案,但我认为在应用程序上下文中重新加载一个新的 SessionFactory 而不重新加载使用它的其他 bean 将导致严重的问题。 SessionFactory 通常是一个单例 bean,因此仅在上下文刷新时才使用它注入(inject)到其他 bean 中。因此,即使您设法将新的 SessionFactory bean 放入应用程序上下文中,DAO 也不会知道该更改,甚至可能尝试使用封闭工厂...

如果您确实想刷新 SessionFactory bean,则必须:

  • 关闭旧bean
  • 创建一个新的
  • 小心地将其注入(inject)所有使用它的bean(通常是DAO)中,模仿spring在刷新时所做的事情
  • 并且所有应该是“原子”的,即在所有 Bean 准备就绪之前不应处理任何请求。

这是您的应用程序,但在我看来,所有这些都容易出错。至少一定要让维护者的评论红闪……

关于java - 如何在 spring mvc 中重新加载/重新创建 sessionFactory bean 而不刷新整个 web 应用程序上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24631745/

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