val appDependencies = Seq(
// Add your project dependencies here,
"com.typesafe" % "play-plugins-guice" % "2.0.3"
)
ターミナルから依存関係の取得を実行。
$ play dependenciesEclipseで編集するので、Eclipse用の設定を更新。
$ play eclipsifyここまでで環境構築は完了。 ここから、環境設定。 conf/直下にplay.pluginsファイルを作成して、GuicePluginを利用することを宣言する。
ここハマッタ。pluginを利用する場合は準備する必要アリ。
# conf/play.plugins 1500:com.typesafe.plugin.inject.GuicePlugin依存関係をバインドするinitializerを作成。
app/module/Dependencies.javaを作成。
はまったのがここで、パッケージ名とクラス名が決められているので注意
かっこつけてmodules.Dependencies.javaなんてつくったら動かなかった。
DI対象は好きな場所に好きな名前で準備。
package module;
import services.UserSearchService;
import services.impl.UserSearchServiceImpl;
import com.google.inject.Binder;
import com.google.inject.Module;
public class Dependencies implements Module {
public void configure(final Binder binde) {
binde.bind(UserSearchService.class).to(UserSearchServiceImpl.class);
}
}
後はDI先でDIフィールドの宣言を行う。ここも注意点アリ。
@javax.inject.Injectである必要アリ。
package controllers;
import static play.Logger.debug;
import javax.inject.Inject;
import org.codehaus.jackson.node.ObjectNode;
import play.data.Form;
import play.libs.Json;
import play.mvc.Controller;
import play.mvc.Result;
import services.UserSearchService;
import forms.UserSearch;
public class UserController extends Controller {
@Inject
static UserSearchService userSearchService;
}
これで動くはず。
0 件のコメント:
コメントを投稿