我正在使用 2 个常见的包,Immutables和
Guice。在运行时发生的第一件事是我将环境和其他来源的设置加载到一个单例、非不可变的配置类中,我们称之为它MyConfig
,例如,公开一个公共getSettingX()
方法。
MyConfig myConfig = MyConfig.intialize().create();
String settingX = myConfig.getSettingX();
我有一个抽象的不可变类,称之为AbstractImmutable
。在实例化时需要设置一个基于myConfig.getSettingX()
.
@Value.Immutable
abstract class AbstractImmutable {
abstract String getSettingX(); // Ideally set
}
现在,通常我MyConfig
使用 Guice 注入到类中,并且想找到一种方法来实现类的实现(以避免每次构建对象时都AbstractImmutable
必须手动注入类——整个原因是使用果汁开始,MyConfig
管理我的 DI)。但是,由于具体的 Immutables 类是在编译时生成的,因此它不适用于通常的 Guice 注入注解。
Immutables 站点上有使用 builder 包注释静态工厂方法的指示,但我似乎无法弄清楚如何将其添加到抽象不可变类中。
有人有什么建议吗?