最近项目重构,更改为使用Guice管理,遇到一个很闹心的问题:   在项目初始化代码中,使用
    final public static Injector injector = Guice.createInjector(Stage.PRODUCTION, new MyModule());
来初始化Guice,并得到Injector用以注入,问题在于MyModule中。   MyModule中绑定了一些类,这些类中有项目初始化代码(比如:插入数据库信息,更改配置文件,以适用于不同的应用),这些初始化方法需要在项目部署时候运行,因此在绑定时候,使用如下方法:
  bind(VMMonitoringServiceImpl.class).asEagerSingleton();  同时在初始化方法前加@inject注释
表明这些类需要预先初始化,同时这些方法也需要在初始化后运行。
 
  项目部署后出现了空指针异常!因为在那些初始化方法中也有注入请求,请求的是对一个公共接口的某一个实现,只知道类名字,因此只能用Injector通过injector.getInstance(T)来获取,而此时由于正在进行Guice的初始化,Injector是null。   请问,如何将Guice初始化过程和项目初始化过程分开来执行?即:令Guice初始化完成后,再执行项目初始化代码部分。
  ps:
    那些初始化代码部分暂时无法统一到一个地方,因为牵扯到不同jar包的资源获取。
    如果取消掉bind过程的asEagerSingleton,在Guice初始化后,如何获取到这些类实例成了问题!显示提供类名通过Injector获取是可以,但不够好,因为存在HardCode,灵活性很差。
    
   各位有啥绝招?帮帮忙 谢谢啦!!