Spring.Net中的多个上下文

本文关键字:上下文 Net Spring | 更新日期: 2023-09-27 18:07:14

春天有可能有多个上下文吗?Net并行而不创建他们的对象时调用其他上下文?

<spring>
 <context>
  <context name="A">
   <!-- ... some objects might be created here -->
  </context>
  <context name="B">
   <!-- ... some objects might be created here -->
  </context>
 </context>
</spring>

春天的怪事。Net是,即使我在特定的上下文中调用GetContext()(例如,GetContext("A"))所有对象(如果我调用A,即使是来自B的对象)都被创建。

var ctx = ContextRegistry.GetContext("A");
var my = (MyClass)ctx.GetObject("MyObject"); // where MyObject is in context A

我可以显式地做一个延迟初始化时调用GetObject(),但可能有一个更好的解决方案在那里?

Spring.Net中的多个上下文

默认情况下,当上下文初始化并在应用程序启动时添加到注册表时,单例应该被热切实例化,所以我很确定上下文"B"中的非惰性对象在您调用GetObject()之前就已经实例化了(即,热切实例化与您在IIRC上调用任何GetObject()无关)。

我知道,实现你所追求的唯一方法确实是将整个上下文"B"的默认lazy设置为true,或者在上下文"B"的每个对象的基础上指定lazy=true。