我有一个单例类,已在构造函数中注入了ConfigurationProvider类。
class Global {
ConfigurationProvider configurationProvider;
@Inject
Global(ConfigurationProvider configurationProvider){
this.configurationProvider = configurationProvider;
DatabaseConfiguration.DB_URL = configurationProvider.get().getConfig("db").getString("default.url");
}
}
当我尝试访问ConfigurationProvider类方法时,该对象不可用,并且在以测试生产模式启动时会引发NullPointerException(激活程序testProd)
我已经在模块类中绑定了全局类
public class Module extends AbstractModule
{
@Override
public void configure()
{
// Use the system clock as the default implementation of Clock
bind(Clock.class).toInstance(Clock.systemDefaultZone());
// Ask Guice to create an instance of ApplicationTimer when the
// application starts.
bind(ApplicationTimer.class).asEagerSingleton();
// Set AtomicCounter as the implementation for Counter.
bind(Counter.class).to(AtomicCounter.class);
bind(Global.class).in(Singleton.class);
}
}
最佳答案
您需要启用通过添加创建的模块
play.modules.enabled + =“ modules.Module”
在您的application.conf文件中。这样就可以配置依赖项绑定。