package io.ebean;
import io.ebean.config.ContainerConfig;
import io.ebean.config.DatabaseConfig;
Creates Database instances.
This uses either DatabaseConfig or properties in the application.properties file to
configure and create a Database instance.
The Database instance can either be registered with the DB singleton or not. The DB singleton effectively holds a map of Database by a name. If the Database is registered with the DB singleton you can retrieve it later via DB.byName(String)
.
One Database can be nominated as the 'default/primary' Database. Many methods on the DB singleton such as DB.find(Class<Object>)
are just a convenient way of using the 'default/primary' Database.
/**
* Creates Database instances.
* <p>
* This uses either DatabaseConfig or properties in the application.properties file to
* configure and create a Database instance.
* </p>
* <p>
* The Database instance can either be registered with the DB singleton or
* not. The DB singleton effectively holds a map of Database by a name.
* If the Database is registered with the DB singleton you can retrieve it
* later via {@link DB#byName(String)}.
* </p>
* <p>
* One Database can be nominated as the 'default/primary' Database. Many
* methods on the DB singleton such as {@link DB#find(Class)} are just a
* convenient way of using the 'default/primary' Database.
* </p>
*/
public class DatabaseFactory {
Initialise the container with clustering configuration.
Call this prior to creating any Database instances or alternatively set the
ContainerConfig on the ServerConfig when creating the first Database instance.
/**
* Initialise the container with clustering configuration.
* <p>
* Call this prior to creating any Database instances or alternatively set the
* ContainerConfig on the ServerConfig when creating the first Database instance.
*/
public static synchronized void initialiseContainer(ContainerConfig containerConfig) {
EbeanServerFactory.initialiseContainer(containerConfig);
}
Create using ebean.properties to configure the server.
/**
* Create using ebean.properties to configure the server.
*/
public static synchronized Database create(String name) {
return EbeanServerFactory.create(name);
}
Create using the ServerConfig object to configure the server.
/**
* Create using the ServerConfig object to configure the server.
*/
public static synchronized Database create(DatabaseConfig config) {
return EbeanServerFactory.create(config);
}
Create using the ServerConfig additionally specifying a classLoader to use as the context class loader.
/**
* Create using the ServerConfig additionally specifying a classLoader to use as the context class loader.
*/
public static synchronized Database createWithContextClassLoader(DatabaseConfig config, ClassLoader classLoader) {
return EbeanServerFactory.createWithContextClassLoader(config, classLoader);
}
Shutdown gracefully all Database instances cleaning up any resources as required.
This is typically invoked via JVM shutdown hook and not explicitly called.
/**
* Shutdown gracefully all Database instances cleaning up any resources as required.
* <p>
* This is typically invoked via JVM shutdown hook and not explicitly called.
* </p>
*/
public static synchronized void shutdown() {
EbeanServerFactory.shutdown();
}
}