我想将一些数据注入(inject)静态类字段,这些字段是从大量 XML 文件生成的。
class Foo {
...
static MetaData xxx;
static MetaData yyy;
}
注入(inject)非常简单,它找到Foo.properties并解析xxx、yyy属性,然后构造MetaData实例。
我不确定 IoC 容器是否可以帮助完成这项任务,但似乎没有。
因为,Foo 可能被 IoC 容器未加载的类使用。
我的想法是,修改上下文类加载器,添加一些基于反射的具体类初始化代码。
有什么想法吗?
编辑 有很多 IoC 容器,我猜其中一些可能支持初始化扩展。
最佳答案
xxx, yyy 在惰性模式下初始化。
如:
private static MetaData xxx=null;
public static MetaData getXXX(){
if(xxx=null){
xxx=parse("Foo.properties");
}
return xxx;
}
如果 Ioc 对于您的程序来说是必须的,BeanPostProcessors Spring 可以是一个选择。您可以在 BeanPostProcessor 中解析文件并创建 MetaData 对象。
关于java - 用于自定义类初始化的轻量级类加载器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4755291/