Creamyは、「設定より規約」(convention over configuration)という考え方に則って設計されています。そのため、Creamyでの開発では多くの設定を把握する必要はなく、いくつかの規約に従うだけです。
また、Creamyの規約はweb開発経験者にとって馴染み易いものとして設計されています。
Creamyではモデル、コントローラ、ビューに対応するクラスがあり、 特にコントローラとビューに関しては命名規約によってその関連が表されています。 ただし、その命名規約は非常にシンプルです。
以下、例を示します。
コントローラ名 | コントローラメソッド名 | ビューパッケージ名 | ビューファイル名 |
controller.Application | create | views.application | Create.vm.fxml, Create.java |
Creamyでは、O/RマッパーとしてEBeanを採用しています。 そのため、EBeanの規約に従うことで、リレーショナルデータベース(以下RDB)との強力な連携が可能となります。
EBeanの命名規約は非常にシンプルです。 RDBのテーブル名とクラス名、テーブルの列名とフィールド変数名が対応します。 またその際、SampleTableクラスはsample_tableテーブル、sampleFieldはsample_filed列のように複合語はキャメルケースとアンダースコア区切りに対応します。
RDB | モデルクラス | |
テーブル/モデルクラス名 | computer | Computer |
テーブル/モデルクラス名 | user_info | UserInfo |
列/フィールド名 | date | date |
列/フィールド名 | user_name | userName |
EBeanでは様々なアノテーションを利用することで、RDB上のテーブルの構成を表現します。 また、アノテーション等を設定したクラスを元にRDBを自動で構成することも可能です。 詳細は モデルの項 、もしくは EBeanの公式ページ を参照してください。
1 2 3 4 5 6 7 8 9 | @Entity //テーブルを表すクラスとして明示
@Table(name="company") //companyテーブルと関連を明示
public class Company extends Model {
@Id //主キーであることを明示
public Integer id;
@NotNull //NotNull制約があることを明示
public String name;
}
|
Creamyでは、コントローラメソッドの呼び出しをパスに対するリクエストという形で 行います。 パスは/コントローラ名/メソッド名/パラメータ1/パラメータ2...という形で表されます。 この際、パラメータの数や順序はメソッド名に対応するメソッドのシグネチャと整合している必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Application extends Controller {
// パス /Aplication/edit/”数値” を呼び出すと
public Result edit(Integer id) {
computer = Computer.find.byId(id);
return ok(this);
}
//GET Aplication/create
public Result create() {
computer = new Computer();
return ok(this);
}
}
|
リクエストが正常に発行され、コントローラのメソッドが呼び出された場合、 メソッド内で別のパスにリダイレクト(フォワード)するなどしなければ、 そのメソッド名に対応するViewが表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class Application extends Controller {
// パス "/Application/home" にアクセスすると
// views.application.home.vm.fxmlの画面が表示される
public Result home() {
return ok(this);
}
// パス "/Aplication/redirect"にアクセスすると
// パス "/Application/home"にアクセスしたときと同じ画面が表示される
public Result redirect() {
Computer.find.ref(id).delete();
return redirect("/Application/home"); //リダイレクト
}
}
|
ビューに関する規約は非常にシンプルです。 Ceamyでは、ビューはFXMLとActivityクラスの組み合わせから成ります。 ファイルとクラス名の規約を守っていれば問題ありません。
コントローラ名 | コントローラメソッド名 | ビューパッケージ名 | ビューファイル名 |
controller.Application | create | views.application | Create.vm.fxml, Create.java |