分阶段加载 spring 上下文

2024-04-23

这是人们会问的奇怪问题之一——为什么?

所以我将从我为什么要这样做开始,然后讨论这个问题。我想更好地控制 spring 上下文的加载方式。例如,我不想同时加载域和web-api。这将使资源在其依赖项准备好之前可用。 也可能我需要检查某些东西的状态,然后才能继续此过程。也就是说,模块/上下文之间会有顺序。也许不仅是启动,而且在关机时也是如此。

所以问题是我找不到任何有关如何加载域上下文的信息,然后当完成后我将检查状态并最后加载 api 上下文。我想从 java 代码中完成所有这些工作,因为我需要控制启动流程。我有使用 SpringServlet 加载网络上下文的基础知识。我没有找到任何信息是是否可以加载上下文,等待并加载引用第一个上下文的另一个上下文。

很高兴知道我没有使用 JavaEE 也没有使用容器。我只使用带有 servlet 和 spring 的嵌入式 Jetty。那么有没有办法可以做到这一点呢?


我建议考虑以下事项:

  • Read SmartLifeCycle http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/SmartLifecycle.html and Phased http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/Phased.html用于应用程序上下文生命周期管理顺序的扩展点。这个想法是让您的顶级重要 bean 实现接口,以便标准应用程序上下文初始化也将按照您自定义的顺序处理到这些 bean。
  • 将应用程序上下文 XML 文件分成更小的部分。使用<import />在依赖于更高/更低上下文的那些中。
  • Use depends-on关键任务 bean 上的属性以确保依赖性。
  • Use InitializingBean需要确保当前 bean 初始化后满足依赖关系。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分阶段加载 spring 上下文 的相关文章

随机推荐

  • 如果滚动位置为 0,ViewPager2 中的片段不会响应点击

    我很高兴谷歌发布了ViewPager2 https developer android com jetpack androidx releases viewpager2它基于 RecyclerView 构建 解决了旧 ViewPager 存
  • Android WebViewClient url重定向(Android URL加载系统)

    我尝试使用以下方法拦截 webview 请求 ShouldInterceptRequest 里面我用了HttpUrlConnection为了从服务器获取数据 我将其设置为遵循重定向 这对 webviewclient 是透明的 这意味着当我返
  • HTML5 文本画布在文本宽度大于允许的最大宽度时旋转

    朋友们 我发现旋转文本画布对象有点棘手 问题是 我正在绘制一个图形 但有时每个条形的宽度小于该条形的 值 所以我必须将 值 评定为 90 度 在大多数情况下它都会起作用 我正在做以下事情 a function x y text maxWid
  • 何时在 struts2 中使用重定向和链接结果类型

    在我的 struts 2 项目中 当使用重定向操作时 我丢失了所有值 例如操作错误和字段错误 我在网上查了一下 发现有2个选项 链条 这个用得不多 我不知道为什么 MessageStoreInterceptor 这需要放置在每个操作中 那么
  • Python检测关键字

    我正在做的应用程序执行以下操作 1 如果麦克风检测到一些噪音 它就会开始录制音频 直到检测不到噪音 之后 音频被录制到 wav 文件中 2 我必须检测上面的一些文字 只有 5 到 10 个单词需要检测 到目前为止 我的代码只执行第一部分 检
  • 在 GAME 上使用 Spring 3 MVC + Maven 2 找不到映射

    我在尝试将 Spring MVC 和 Maven 集成到 Google AppEngine Web 应用程序中时遇到了一个奇怪的问题 这是我的 web xml
  • 是否可以在不安装的情况下使用 MSBuild 扩展包?

    有没有一种方法可以将 MSBuild 扩展包与 本地 引用一起使用 而不需要运行安装程序 换句话说 您能否将目标存储在解决方案项目文件夹中 以便每个开发人员都不必安装它 你必须申报财产 扩展任务路径 在任务的导入语句之前 例如看一下
  • 如何避免 WCF 中的大量通信类?

    我的理解是 所有合约实现代码都必须位于单个类中 显然 该类可能会变得非常大 我该如何避免这种情况 我真的更喜欢让几个小班来完成与客户沟通的一部分 而不是一个庞大的班级 我能想到的唯一想法是使用由单个类分割实现的多个接口partial 但我认
  • 使用 Django 会话存储登录用户

    我正在创建一个以 REST 为中心的应用程序 它将针对大多数特定于域的模型使用某种 NoSQL 数据存储 对于我打算围绕 REST 数据框架构建的主站点 我仍然希望对用户 计费信息和域数据模型范围之外的其他元数据使用传统的关系数据库 有人告
  • 我可以从带时间戳的图像创建 VFR 视频吗?

    首先 我对图像制作视频的经验几乎为零 我拥有的是一组带有 BMP 时间戳的图像 我想从中生成视频 由于时间戳的间隔不相等 我不能简单地使用从图像创建恒定帧速率视频的软件 一个可能的解决方案是在固定的时间间隔创建人造图像 但如果我无法制作 V
  • 我必须在哪里以及为什么必须放置“template”和“typename”关键字?

    在模板中 我必须在哪里以及为什么要放置typename and template关于从属名称 到底什么是从属名称 我有以下代码 template
  • 如何在没有 Eclipse 的情况下构建 apk 或使用配置文件修改 apk 构建?

    我想从 xml 文件构建一个具有一些大型配置的 apk 我想知道是否有任何方法可以控制 apk 的构建过程 或者是否有任何方法可以根据我们的配置 xml 文件对我们的源进行一些修改 从我们的源创建 apk 或者任何其他方式来构建apk文件
  • 无法向 Kafka 发送大消息

    我想从生产者向 Kafka 发送一条大消息 因此我更改了以下属性 代理 服务器 属性 replica fetch max bytes 317344026 message max bytes 317344026 max message byt
  • PHP return_var 代码?

    我正在测试 php exec 命令 http php net exec http php net exec 我得到的结果代码是 127 我的 PHP 代码是
  • 列表作为 python 类的成员,为什么它的内容在该类的所有实例之间共享?

    我定义了一个类Listener并创建了一本字典Listener对象 每个听众都有一个id来识别它们 以及一个列表artists他们听 artists 添加一些东西到artists列表将其添加到的所有实例Listener类 而不是引用的实例
  • 将数据库导入 MATLAB 错误

    我正在尝试将表导入到我的 MATLAB 工作区 但它一直向我抛出错误 Undefined function or method fetch for input arguments of type struct 这是我尝试执行的代码 dyn
  • 递归使用 scp 但排除某些文件夹

    假设有一些具有这些结构的文件夹 bench1 1cpu p 0 image bench1 1cpu p 0 fl 1 bench1 1cpu p 0 fl 1 bench1 1cpu p 0 fl 1 bench1 1cpu p 0 fl
  • 如何使用 PJSIP 为 iOS 客户端应用程序捕获并翻译其他语言的传入音频流?

    我想在基于 VoIP 的 iOS 客户端应用程序中集成语言转换器 该应用程序将根据用户选择将实时传入音频流翻译为其他选定的语言 我正在使用 PjSip 开源库来支持 VoIP 呼叫 对于语言翻译 我想使用语音到文本和文本到语音开源库 现在我
  • Windows 上的 PHP mail():没有错误,电子邮件未发送

    我目前正在尝试调试一个基于 Elgg 的网站 我没有开发它 我想直接从本地开发计算机 WinXP 发送电子邮件 我正在使用 Apache 2 2 11 和 PHP 5 3 0 运行 WAMP 经过一番搜索后 我遇到的最简单的解决方案是使用假
  • 分阶段加载 spring 上下文

    这是人们会问的奇怪问题之一 为什么 所以我将从我为什么要这样做开始 然后讨论这个问题 我想更好地控制 spring 上下文的加载方式 例如 我不想同时加载域和web api 这将使资源在其依赖项准备好之前可用 也可能我需要检查某些东西的状态