SPRING.NET 1.3.2 学习17--使用延迟加载

延迟加载的意义是什么,为什么需要延迟加载,请看这篇文章

浅析C#延迟加载的运行机制和应用场景

http://www.51testing.com/html/00/n-235500.html

关于这个,c#4.0 提供了一个包装类 Lazy<T>,这里有它的源码分析

http://www.cnblogs.com/me-sa/archive/2010/05/25/Lazy-initialization-Fx4.html

实际就是使用了单例模式,在给对象的属性赋值时才实例化对象,再次访问只是返回缓存的对象实例,所以说Lazy类看起来很神奇,但它只是个包装类而已

而Spring.net也有它自己的实现方式,当然这又离不开XML配置,在Spring.net下一般对象的创建都是在ApplicationContext启动时提前被实例化,如果要延迟加载需要lazy-init="true",如下所示

<object id="lazy" type="MyCompany.ExpensiveToCreateObject, MyApp" lazy-init="true"/>

另外可以在容器级别直接定义延迟加载,这样在里面定义的对象全部都是延迟加载的

<objects default-lazy-init="true">
  <!-- no objects will be pre-instantiated... -->
</objects>









你可能感兴趣的:(SPRING.NET 1.3.2 学习17--使用延迟加载)