Как я могу переопределить конфигурацию сервера Ebean по умолчанию Play?

Я не хочу определять конфигурацию базы данных по умолчанию вapplication.conf файл. Вместо этого я хочу программно создать стандартный EbeanServer и внедрить его в DAO.

Проблема, с которой я сталкиваюсь, заключается в том, что, если я создаю привязку guice для поставщика EbeanServer и не определяю конфигурациюapplication.conf файл, воспроизведите ошибки, заявив, что не может найти конфигурацию по умолчанию.

Вот код, который у меня есть:

public class EbeanServerProvider implements Provider<EbeanServer> {

    final Logger.ALogger log = Logger.of(this.getClass());

    @Override
    public EbeanServer get() {

        ServerConfig serverConfig = new ServerConfig();
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

        Config dbConfig = ConfigFactory.load(classLoader,"env/default.conf");

        /* Read the config files */
        final String DB_DRIVER   = dbConfig.getString("db.default.driver");
        final String DB_URL      = dbConfig.getString("db.default.url");
        final String DB_USERNAME = dbConfig.getString("db.default.username");
        final String DB_PASSWORD = dbConfig.getString("db.default.password");

        log.debug("{}",DB_DRIVER);
        log.debug("{}",DB_URL);
        log.debug("{}",DB_USERNAME);
        log.debug("{}",DB_PASSWORD);
        /* Load the database driver */
        dataSourceConfig.setDriver(DB_DRIVER);
        try{
            Class.forName(DB_DRIVER).newInstance();
        }
        catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
            log.error("Unable to load database driver:{}",DB_DRIVER);
            throw new WrappedServerError(InternalErrorCode.TA_ERROR,"Failed to load database driver",e);
        }

        /* Set the data source configs */
        dataSourceConfig.setUrl(DB_URL);
        dataSourceConfig.setUsername(DB_USERNAME);
        dataSourceConfig.setPassword(DB_PASSWORD);
        dataSourceConfig.setCaptureStackTrace(true);


        serverConfig.setDataSourceConfig(dataSourceConfig);
        serverConfig.setName("mysql");
        serverConfig.setDefaultServer(true);
        serverConfig.setDdlGenerate(false);
        serverConfig.setDdlRun(false);
        serverConfig.setRegister(true);

        EbeanServer dbServer=null;
        try {
            dbServer = EbeanServerFactory.create(serverConfig);
        }
        catch (Exception e){
            throw new WrappedServerError(InternalErrorCode.TA_INIT_ERROR,"Failed to create ebean server",e);
        }

        return dbServer;
    }
}

application.conf:

# Ebean configuration
ebean.default = ["com.giraffe.models.*"]

привязка модуля guice

    //Ebean server
  bind(EbeanServer.class).toProvider(EbeanServerProvider.class).asEagerSingleton();

Ошибка:

play.api.UnexpectedException: Unexpected exception[CreationException: Unable to create injector, see the following errors:

1) Error in custom provider, Configuration error: Configuration error[null]
  while locating play.db.ebean.DefaultEbeanConfig$EbeanConfigParser
  at play.db.ebean.EbeanModule.bindings(EbeanModule.java:24):
Binding(interface play.db.ebean.EbeanConfig to ProviderConstructionTarget(class play.db.ebean.DefaultEbeanConfig$EbeanConfigParser) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$anon$1)
  while locating play.db.ebean.EbeanConfig
    for parameter 0 at play.db.ebean.EbeanDynamicEvolutions.<init>(EbeanDynamicEvolutions.java:36)
  at play.db.ebean.EbeanDynamicEvolutions.class(EbeanDynamicEvolutions.java:33)
  while locating play.db.ebean.EbeanDynamicEvolutions
  at play.db.ebean.EbeanModule.bindings(EbeanModule.java:23):
Binding(class play.api.db.evolutions.DynamicEvolutions to ConstructionTarget(class play.db.ebean.EbeanDynamicEvolutions) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$anon$1)
  while locating play.api.db.evolutions.DynamicEvolutions
Caused by: Configuration error: Configuration error[null]
    at play.api.Configuration$.configError(Configuration.scala:178)
    at play.api.Configuration.reportError(Configuration.scala:829)
    at play.Configuration.reportError(Configuration.java:351)
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.parse(DefaultEbeanConfig.java:81)
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.get(DefaultEbeanConfig.java:60)
    at play.db.ebean.DefaultEbeanConfig$EbeanConfigParser.get(DefaultEbeanConfig.java:44)
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
    at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
    at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)

Ответы на вопрос(2)

Ваш ответ на вопрос