用于自定义类初始化的轻量级类加载器?

时间:2011-01-21 04:12:45

标签: java ioc-container classloader

我想将一些数据注入静态类字段,这些字段是从大量XML文件生成的。

class Foo {
    ...
    static MetaData xxx; 
    static MetaData yyy; 
}

注入非常简单,它找到Foo.properties并解析xxx,yyy属性,然后构造MetaData实例。

我不确定IoC容器是否可以帮助完成这项任务,但似乎没有。

因为,Foo可能由IoC容器未加载的类使用。

我的想法是,修改上下文类加载器,根据反射添加一些特定的类初始化代码。

有什么想法吗?

编辑有很多IoC容器,我想其中一些可能支持初始化扩展。

1 个答案:

答案 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对象。