概要

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 つのインスタンスが デフォルトサーバーとしてマークされている場合に実行できます。