domaframework / doma

DAO oriented database mapping framework for Java
https://doma.readthedocs.io/
Apache License 2.0
448 stars 70 forks source link

joobyでの利用 #157

Closed worifon closed 8 years ago

worifon commented 8 years ago

jooby http://jooby.org/ での利用はできますでしょうか? joobyのmoduleにしないとできないでしょうか?

nakamura-to commented 8 years ago

利用できると思います。ドキュメントを見る限り利用にあたっての制約は特になさそうです。

module化は必須ではないです。joobyにはDataSouceを提供するmoduleがあるのようなので、以下のようにすれば、Domaをmodule化しなくても使えます。

{
  // joobyのJdbcモジュールを使う
  use(new Jdbc());

  get("/", req -> {
    DataSource db = req.require(DataSource.class);
    EmployeeDao dao = new EmployeeDaoImpl(db);
  });
}

ただしモジュール化すればもう少し簡潔に書けると思います。以下はあくまでサンプルですが、次のように書くこともできると思われます。

{
  // Domaモジュールは自前で作る
  use(new Doma());

  get("/", req -> {
    DaoProvider daoProvier = req.require(DaoProvider.class);
    EmployeeDao dao = daoProvider.get(EmployeeDao.class);
  });
}

Daoを取り出して使うこともできそうです。

{
  // Daoモジュールは自前で作る
  use(new Dao());

  get("/", req -> {
    EmployeeDao dao = req.require(EmployeeDao.class);
  });
}
worifon commented 8 years ago

ありがとうございます。自力では見当も付かなかったのですが、ご教示いただいた方法で試してみます。