我有一个单例类,已在构造函数中注入了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文件中。这样就可以配置依赖项绑定。

10-05 23:12