我想将一些数据注入静态类字段,这些字段是从大量XML文件生成的。
class Foo {
...
static MetaData xxx;
static MetaData yyy;
}
注入非常简单,它找到Foo.properties并解析xxx,yyy属性,然后构造MetaData实例。
我不确定IoC容器是否可以帮助完成这项任务,但似乎没有。
因为,Foo可能由IoC容器未加载的类使用。
我的想法是,修改上下文类加载器,根据反射添加一些特定的类初始化代码。
有什么想法吗?
编辑有很多IoC容器,我想其中一些可能支持初始化扩展。
答案 0 :(得分:0)
xxx,yyy以懒惰模式初始化。
如:
private static MetaData xxx=null;
public static MetaData getXXX(){
if(xxx=null){
xxx=parse("Foo.properties");
}
return xxx;
}
如果你的程序必须使用Ioc,那么Spring中的BeanPostProcessors可以是一个选择。您可以解析文件并在BeanPostProcessor中创建MetaData对象。