概要
EbeanServer インスタンスの設定は ServerConfig
ビーンで定義されます。利用可能なすべての設定オプションに対する一連のゲッターとセッターがあります。
コードの観点では、新しい ServerConfig インスタンスが作成され、呼び出し元セッターメソッドまたは ebean.properties や外部プロパティから設定をロードすることで設定されます。最後に EbeanServerFactory
は ServerConfig を取り込み EbeanServer
インスタンスを作成するために使用されます。
ebean.properties
ServerConfig.loadFromProperties()
は ebean.properties
ファイルから設定をロードします。一部のプロパティがコード(ServerConfig でセッターメソッドを呼び出す)を介して設定され、一部は ebean.properties から設定される際に使用できます。
ServerConfig config = new ServerConfig();
config.setName("pg");
...
// load configuration from ebean.properties
// using "pg" as the server name
config.loadFromProperties();
...
EbeanServer server = EbeanServerFactory.create(config);
外部プロパティ
Properties
をロードし、それを ServerConfig.loadFromProperties(Properties)
を介して ServerConfig に供給する外部メカニズムを使用できます。一部の構成が外部ロードされたプロパティを介して設定され、一部がコード(ServerConfig でセッターメソッドを呼び出す)を介して設定される場合に使用できます。
// load properties externally
Properties externalProps = ...;
ServerConfig config = new ServerConfig();
config.setName("pg");
...
// load configuration from external properties
// using "pg" as the server name
config.loadFromProperties(externalProps);
...
EbeanServer server = EbeanServerFactory.create(config);
登録
デフォルトでは、ServerConfig には register=true があり、つまり EbeanServer インスタンスは Ebean シングルトンに登録され、後で Ebean.getServer(serverName)
を介してアクセスできます
この機能を使用しない場合は、ServerConfig.setRegister(false) を明示的に使用する必要があります。
ServerConfig config = new ServerConfig();
config.setName("pg");
...
EbeanServer server = EbeanServerFactory.create(config);
...
// Later on we can get the server instance
// using it's name via Ebean
EbeanServer server = Ebean.getServer("pg");
デフォルトサーバー
ServerConfig.setDefaultServer(true) を設定して、作成される EbeanServer インスタンスが「デフォルト」EbeanServer であることを示し、後で Ebean.getDefaultServer()
を介してアクセスできます。
ServerConfig config = new ServerConfig();
config.setName("pg");
config.setDefaultServer(true);
...
EbeanServer server = EbeanServerFactory.create(config);
...
// Later on we can get the server instance ...
EbeanServer server = Ebean.getDefaultServer();
// Note: serverName of null is the same as getting the default server
EbeanServer server = Ebean.getServer(null);
依存関係注入
Guice、Spring、および同様の DI フレームワークによる依存関係注入では、通常、ServerConfig を作成し、必要に応じて ebean.properties または外部プロパティを使用して構成してから EbeanServerFactory
を使用して EbeanServer インスタンスを作成する「プロバイダー」または「ファクトリー」が必要です。
注入と ActiveRecord
EbeanServer
インスタンスを従来の DI コーディングスタイルで @Inject
できることと、同時にアクティブレコードスタイルを使用することが一般的で予想されることです。これは、EbeanServer インスタンスが register
を true として作成され、1 つのインスタンスが デフォルトサーバー
としてマークされている場合に実行できます。