- Typesafe Activatorを元にプロジェクトを作成する
- Bootstrapの3系を組み込む
- Ebeanを組み込む
- 各種設定ファイルを管理がしやすいように分割しておく
ところまでやったのがこのリビジョンです。(料理番組的・・・)
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/tree/cbd6850947c7d31fc3d4cb9899a4ee197aeaf57f
今回のアプリケーションではユーザー側と管理者側とを同じ1台のサーバで処理する想定です。
この場合、データベースは一緒になりますが、ルーティング及びコントローラは別になるため、サブプロジェクトとして予め準備をしておきます。
このエントリーはこのチケットの解説です。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/issues/7
サブプロジェクトの作り方はこちらのエントリーを参照して下さい。
Play Frameworkでサブプロジェクトを使い倒す
このエントリーと同じ設計思想で
のサブプロジェクトを用意します。
どうやらコンパイルをすると自動的に
ファイルが生成される模様。多分あとで消す。
src/main/javaなどのフォルダも自動的に生成されていました。とりあえずGitで管理したいので、 .gitkeep を置いておきます。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/tree/master/modules/common/src/main/java/components
にあるような、Javaで使いまわせるようなUtilityを配置します。
これはPlayのサブプロジェクトになります。
各ディレクトリの形式もPlayの形式に従っています。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/tree/master/modules/base/app/cache/base
にあるような、Playのapiを使用する共通処理を配置します。
わざわざcacheフォルダの中にサブプロジェクト名と同じサブフォルダを掘っているのは、後述のadminプロジェクトの構成と合わせるためこのようにしています。
などのように、Playのプロジェクトで共通して使えるような処理系を配置します。
これはPlay形式のサブプロジェクトになるので、build.sbtを配置しておきます。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/modules/base/build.sbt
とりあえずnameをサブプロジェクト用に書き換えたものを置いてみました。
ちなみにPlay Framework2.2.xでcacheを使うときには
のようにlibraryDependenciesにcacheを追加しておきます。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/build.sbt
ここにはフロントエンド側、管理画面側で共通で使えるDB操作系の処理を配置します。
model周りやmodelを操作するservice周り、modelのラッパー的に使用するbeansを置くことになると思います。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/tree/master/modules/admin
ここでは管理画面の処理を起きます。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/modules/admin/app/controllers/admin/ApplicationController.java
のような感じですね。個人的にControllerのクラス名にはXXXControllerとしたいのは僕だけでしょうか?
さて、ちょっとControllerのパッケージがフロントエンド側とかぶると、ルーティングとかがめんどくさくなるので、controllers/admin/ApplicationController.java みたいな感じの場所においています。viewも同様です。
ルーティングですが、
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/conf/routes
の
みたいな感じでサブプロジェクトのルーティングルールを呼びます。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/modules/admin/conf/admin.routes
assets,webjarsについてはadminとフロントエンドと分ける方法が未だによくわかりません・・・・。
Play Framework 2.2.x では以前ブログに書いた2.1.x系とサブプロジェクトの作り方が変わっていたので大変でした。以上。
今回のアプリケーションではユーザー側と管理者側とを同じ1台のサーバで処理する想定です。
この場合、データベースは一緒になりますが、ルーティング及びコントローラは別になるため、サブプロジェクトとして予め準備をしておきます。
このエントリーはこのチケットの解説です。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/issues/7
サブプロジェクトの作り方はこちらのエントリーを参照して下さい。
Play Frameworkでサブプロジェクトを使い倒す
このエントリーと同じ設計思想で
- common:自作ライブラリ系
- base:Controller共通処理系・Filter系
- core:ORM・DB操作系
- admin:管理画面
のサブプロジェクトを用意します。
common
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/tree/master/modules/commonどうやらコンパイルをすると自動的に
- .classpath
- .project
ファイルが生成される模様。多分あとで消す。
src/main/javaなどのフォルダも自動的に生成されていました。とりあえずGitで管理したいので、 .gitkeep を置いておきます。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/tree/master/modules/common/src/main/java/components
にあるような、Javaで使いまわせるようなUtilityを配置します。
base
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/tree/master/modules/baseこれはPlayのサブプロジェクトになります。
各ディレクトリの形式もPlayの形式に従っています。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/tree/master/modules/base/app/cache/base
にあるような、Playのapiを使用する共通処理を配置します。
わざわざcacheフォルダの中にサブプロジェクト名と同じサブフォルダを掘っているのは、後述のadminプロジェクトの構成と合わせるためこのようにしています。
- Cache処理
- Filter処理
などのように、Playのプロジェクトで共通して使えるような処理系を配置します。
これはPlay形式のサブプロジェクトになるので、build.sbtを配置しておきます。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/modules/base/build.sbt
とりあえずnameをサブプロジェクト用に書き換えたものを置いてみました。
ちなみにPlay Framework2.2.xでcacheを使うときには
libraryDependencies ++= Seq( // Select Play modules javaJdbc, // Java database API javaEbean, // Java Ebean plugin //javaJpa, // Java JPA plugin javaCore, // The core Java API cache, "org.webjars" %% "webjars-play" % "2.2.0", "org.webjars" % "bootstrap" % "3.1.1", "org.webjars" % "font-awesome" % "4.0.3", "mysql" % "mysql-connector-java" % "5.1.29")
のようにlibraryDependenciesにcacheを追加しておきます。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/build.sbt
core
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/tree/master/modules/coreここにはフロントエンド側、管理画面側で共通で使えるDB操作系の処理を配置します。
model周りやmodelを操作するservice周り、modelのラッパー的に使用するbeansを置くことになると思います。
admin
お待たせしました、やっとそれっぽいサブプロジェクトの登場です。https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/tree/master/modules/admin
ここでは管理画面の処理を起きます。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/modules/admin/app/controllers/admin/ApplicationController.java
のような感じですね。個人的にControllerのクラス名にはXXXControllerとしたいのは僕だけでしょうか?
さて、ちょっとControllerのパッケージがフロントエンド側とかぶると、ルーティングとかがめんどくさくなるので、controllers/admin/ApplicationController.java みたいな感じの場所においています。viewも同様です。
ルーティングですが、
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/conf/routes
の
-> /admin admin.Routes
みたいな感じでサブプロジェクトのルーティングルールを呼びます。
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/modules/admin/conf/admin.routes
# Routes # This file defines all application routes (Higher priority routes first) # ~~~~ GET /index controllers.admin.ApplicationController.index() # Map static resources from the /public folder to the /assets URL path GET /assets/*file controllers.Assets.at(path="/public", file) GET /webjars/*file controllers.WebJarAssets.at(file)
assets,webjarsについてはadminとフロントエンドと分ける方法が未だによくわかりません・・・・。
Play Framework 2.2.x では以前ブログに書いた2.1.x系とサブプロジェクトの作り方が変わっていたので大変でした。以上。
0 件のコメント:
コメントを投稿