Spring:确保首先初始化特定的 bean

2023-12-10

我有一个库进行 log4j 的运行时设置和配置(没有 log4j.properties 或 log4j.xml)。我已经定义了一个名为 MyLoggerFactory 的 bean,我希望它成为第一个使用 spring 初始化的 bean。我看到已经向 spring 提交了一个问题来支持初始化顺序,但我想知道是否有一种方法可以将 bean 标记为 spring 容器初始化的第一个 bean?


您的选择是:

  1. Use @DependsOn注解(spring 3.0.x之后可用)或depends-onxml-attribute 并使所有使用配置的记录器的类依赖于记录器工厂
  2. 让工厂成为记录器的实际工厂,并将记录器注入到 Bean 中,而不是直接调用工厂——这本质上与选项 1 相同,只是隐含了依赖关系。这是我推荐的选项。
  3. 将初始化代码移至代码中指定调用顺序的部分 -main()方法,或ServletContextListener在初始化 Spring 之前注册。

在 Spring 中没有办法显式定义初始化顺序,并且可能永远不会——考虑到您可以加载许多可能具有冲突顺序的应用程序上下文配置文件,没有办法为其定义有用的语义。我还没有看到过通过重构代码以更好地符合依赖项注入模式而无法实现所需排序的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring:确保首先初始化特定的 bean 的相关文章

  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • Python 列表的幂集[重复]

    这个问题在这里已经有答案了 我正在尝试实现一个函数来生成列表的幂集xs 总体思路是我们遍历以下元素xs并选择是否包含x或不 我面临的问题是withX最终等于 None 一个单例列表None 因为 我认为 s add x 回报None 这不是
  • 使用 /= 规范化变量会引发 ufunc 错误

    我正在慢慢地进入一些机器学习领域 但在一项使用计算机视觉处理 Kaggle 猫和狗数据集的练习中 发生了一些我不太明白的事情 当我尝试标准化pickle中的图像值时 它在写入时起作用 X X 255 0 但当我写入时抛出错误 X 255 0
  • C select() 超时 STDIN 单字符(无 ENTER)

    我希望能够使用select 从 STDIN 输入单个字符 无 ENTER 因此 当用户按下一个键时 select 应立即返回 而不是等待用户按 ENTER 键 int main void fd set rfds struct timeval
  • 将字符串电话号码转换为整数[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我对 Java 和 Android 都缺乏经验 我正在尝试检索存储在 Android 手机模拟器的联系人之一中的电话号码 虽然我成功获取了它 但该号码已以 987 654 3210
  • C# 中委托的协变/不变/逆变

    我有以下代码 我没有为此委托指定任何通用参数和 IN OUT 方差 如果我正确理解不变性的含义 我应该无法返回基本类型的对象 因为我的委托提到了对象的返回类型 我对不变性的理解是错误的吗 class Program public deleg
  • Ansible 比较两个列表变量

    我必须检查系统上是否有可用的安装点列表 因此 我定义了一个包含挂载点列表的变量 然后从 Ansible 事实中提取可用的挂载点 hosts all vars required mounts prom data prom logs tasks
  • Webkit 中奇怪的边框不透明行为?

    我一直在测试不透明的边框 Webkit 似乎有一个奇怪的行为 这是我的代码 div span span div 你可以测试一下here 在 Firefox 中 您将得到预期的结果 一个 10px 的白色
  • 使用带有 ORDER BY 的 SQL 串联

    我很困惑 您如何解释变量连接与 ORDER BY 的差异 declare tbl table id int insert into tbl values 1 2 3 declare msg1 varchar 100 msg2 varchar
  • scikit-learn 中的哪些估计器不支持稀疏矩阵?

    我想训练一个具有很多名义属性的数据集 我从一些帖子中注意到 要转换名义属性 必须将它们转换为重复的二进制特征 据我了解 这样做在概念上会使数据集变得稀疏 我还知道 scikit learn 使用稀疏矩阵和一些估计器 因为它更快左右 但我还发
  • ScrollPane 拖动后内容变得模糊

    JavaFX 8 0有这个bug 我不知道如何解决 例子 https i stack imgur com HfsgZ png 如果我拖动 ScrollPane 其内容会变得模糊 但如果我将其拖回 内容会恢复其清晰度 如果我不修改坐标 内容看
  • 对于分配内存的函数,您遵循哪些命名约定?

    所以这里有两个函数几乎做同样的事情 如果您必须将两者都包含在您的项目中 您会如何命名每一个 void strToLower1 char str int len strlen str int i for i 0 i
  • Apache Mod Rewrite:带有 L 参数的 RewriteRule。怎么了?

    我正在开发一个 php 应用程序 但我在 Apache 和 Mod Rewrite 方面遇到了一些问题 有人知道这里出了什么问题吗 RewriteEngine on RewriteBase mysite RewriteRule css cs
  • 如何在 R 中按名称模式删除列?

    我有这个数据框 state county city region mmatrix X1 X2 X3 A1 A2 A3 B1 B2 B3 C1 C2 C3 1 1 1 1 111010 1 0 0 2 20 200 Push 8 12 NA
  • CSS3 背景图像过渡

    我正在尝试使用 CSS 过渡来制作 淡入淡出 效果 但我无法让它与背景图像一起使用 The CSS title a display block width 340px height 338px color black background
  • iPhone自动锁值?

    无法检索自动锁定值吗 或者有人知道如何像现有的警报应用程序一样修改自动锁定时间 Thanks 是的 杰森是对的 您可以使用 application setIdleTimerDisabled YES 停止自动睡眠 但没有办法访问自动锁定值 问
  • 在 Delphi 中以无边框形式/窗口平滑调整大小

    我正在尝试调整无边框表单的大小 但是当我使用右侧 底部增加大小时 边框和旧客户区域之间存在间隙 该间隙取决于移动鼠标的速度 当您从左边框甚至从左下角调整大小时 效果会更加明显 到处都很可怕 我尝试使用其他商业应用程序 它也会发生 当我更改为
  • 在 WPF 中将组合框绑定到 XML

    我知道这个问题已经被问死了 但是我已经尝试了很多我找到的建议答案 并且当我在 VS2013 中启动 WPF 时 组合框仍然没有填充 就这样吧 我有一个名为 People xml 的 XML 文档 其格式如下
  • 如何在 HTML 中定义内联内容库以与 Magnific-Popup 一起使用?

    我的页面上有许多画廊 可以通过各自的按钮启动 我喜欢在按钮旁边定义页面中画廊的标记 然后使用隐藏的想法 mfp hide 但是 当我添加时 我无法激活弹出窗口delegate关键字 否则 这是我到目前为止的代码 HTML div class
  • 如何更改 Rails 迁移 t.timestamps 以在 postgres 中使用 `timestamp(0) without timezone`

    我正在尝试找出如何更改本机数据类型t timestamps用于 Rails 迁移 postgres 中的默认类型是timestamp without timezone 我想要的是timestamp 0 without timezone 我想
  • Spring:确保首先初始化特定的 bean

    我有一个库进行 log4j 的运行时设置和配置 没有 log4j properties 或 log4j xml 我已经定义了一个名为 MyLoggerFactory 的 bean 我希望它成为第一个使用 spring 初始化的 bean 我