我想创建一个带有进度条的窗口,该窗口显示Spring对象实例化的当前状态。从Spring.Net的documentation开始,似乎IObjectPostProcessors
是在对象被实例化时开始和跟踪的正确点。但是为了获得“实例化类的百分比”,我需要询问spring工厂的ObjectDefinitionCount
来获取已配置对象的数量。但是,在上下文创建完成之前这不起作用(同样this problem问题似乎也有关系。)
如果无法使用Spring获取启动状态,那么在应用程序启动期间如何显示信息?
答案 0 :(得分:1)
我可以为您提供一种解决方法,虽然它并不完美但它应该是一个很好的估计。
当然,这不准确,但它应该在大多数时候提供一个很好的估计。
答案 1 :(得分:1)
Spring以两个步骤读取配置 - 首先从配置中读取所有对象定义,然后处理这些定义,必要时实例化单例。
您应该通过实现IObjectFactoryPostProcessor来获得所需的内容。 ObjectFactoryPostProcessors是第一个在其他任何东西之前实例化的对象。此时,对象定义的数量已经可用。使用IObjectPostProcessor为您提供有关要实例化的每个对象的信息。
如果您在加载配置时已经获得了对象定义的数量,我想这是可能的,但Spring会在一次通过中读取配置。您需要使用不同的技术获取对象总数。
HTH, 埃里希