在我的应用程序中,用户可以在启动程序时在命令行中传递一些参数。在 main(String[] args) 方法中,我用 args4j 解析它们。在下一步中,我创建一个 Injector(我使用 Google Guice),然后获取一个主程序类的实例。命令行参数是我的应用程序的配置设置。我有一个应该存储它们的 MyAppConfig 类。
如何在注入过程中包含这些命令行参数?我的应用程序的不同类依赖于 MyAppConfig,因此必须在几个地方注入。
我想到的唯一解决方案是创建一个 MyAppConfig 提供程序,它具有与命令行参数相对应的静态字段,并在我使用 args4j 解析它们并在使用 Injector 之前设置它们。然后这样的提供者将使用静态字段创建一个 MyAppConfig。但这看起来相当难看。有没有更优雅的方法来做到这一点?