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()
,但可能有一个更好的解决方案在那里?
默认情况下,当上下文初始化并在应用程序启动时添加到注册表时,单例应该被热切实例化,所以我很确定上下文"B"中的非惰性对象在您调用GetObject()之前就已经实例化了(即,热切实例化与您在IIRC上调用任何GetObject()无关)。
我知道,实现你所追求的唯一方法确实是将整个上下文"B"的默认lazy设置为true,或者在上下文"B"的每个对象的基础上指定lazy=true。