タグ

seasarに関するkenichiiceのブックマーク (13)

  • 新・たけぞう瀕死の日記

    ■ [Seasar]S2JDBCとS2JDBC-Genあれこれ S2JDBC-Genはエンティティや名前クラス(Namesクラス)だけでなく、テストケースや、SQLファイルをテストするためのテストケースなども生成してくれる非常に便利なツールです。SQLファイルの一括テストはDBFluteにそういう機能があると聞いて「いいなー」と思っていたのですが、S2JDBCでもS2JDBC-Genを使えば実現できたのでした。個人的にエンティティごとにサービスを作るのは、特にS2JDBC(のSQL自動生成で検索する場合)には向いていないと思います。そもそもエンティティ毎にサービス(Dao)を作ると各業務依存のメソッドが大量に作成されて収集がつかなくなる可能性が非常に高いですが、S2JDBCだとさらにLazyロードができないので、同じ検索条件でジョインするエンティティだけが違うメソッドが作られることになるは

  • Javaのコネクションプーリングの仕組み - ひがやすを技術ブログ

    Javaのコネクションプーリングがどのような仕組みになっているのか、知らない人は結構多いんじゃないかと思います。 Slim3のコネクションプーリングの実装を見ると、この辺が理解できるようになります。トランザクションとコネクションプーリングがどのように連携しているかを把握することは重要です。 http://svn.slim3.org/browse/trunk/slim3/slim3-datasource/src/main/java/org/slim3/datasource/ 登場人物は、4人しかいないから簡単ですね。 最初に見て欲しいのは、ConnectionWrapper。DataSource.getConnection()したときに戻されるコネクションの実態です。このコネクションを論理的なコネクションと呼ぶようにします。 主な役割は、コネクションがクローズされたときに、コネクションをプー

    Javaのコネクションプーリングの仕組み - ひがやすを技術ブログ
  • [Seasar-user:16310] Re: [s2-container] あるテストのときだけMockInterceptorを使ったMockに置き換えたいとき

    kenichiice
    kenichiice 2008/11/18
    「コンポーネントは,それが定義されている dicon およびその dicon がインクルードしている dicon に 定義されているコンポーネントだけが見えます」
  • Seasar2の設定ファイル(diconファイル) - Developer☆STYLE

    Seasar2の設定ファイル(diconファイル)について学習(学習中)。 id:higayasuoさんの案内+各種ウェブ情報を読んでの私のメモです。 いろいろ動かしてみたわけではないので、間違いなどは後日別エントリで晒せればと思います。 SAStrutsに触ろう!な勢いだったのですが、この辺りはSAStrutsの学習とちょっと離れてきていることに徐々に気がついてきました(w 早くも"けものみち入り"(w ともあれ、Seasar2の一部復習と勉強を兼ねて。 resources/s2container.dicon Seasar2自身をカスタマイズする設定ファイルがs2container.diconです。 私の理解では、Seasar2のデプロイ方法を変更するためのdiconファイル。 デプロイ方法には"熱い"順に HOT deploy WARM deploy COOL deploy の3種類が

    Seasar2の設定ファイル(diconファイル) - Developer☆STYLE
  • crossroad's Blog S2Daoの例外ハンドリング

    S2Daoを使ったアプリケーション設計を考えているのですが、 ひとつ課題に直面しました。 それはS2Daoが送出する例外です。 S2Daoはデータベースアクセス時にエラーが発生すると、 実行時例外を投げます。 この時、例外の種類によってはエラーとはせずに、アプリケーション 内部でハンドリングしたい場合があります。 例えば、レコード更新時の楽観的排他制御に引っかかった場合、 NotSingleRowUpdatedRuntimeExceptionが送出される ようなのですが、この場合はエラーとはせずに例外を無視したり、 リトライを試みる、などです。 このような例外ハンドリングをする場合は、その例外の型を 知っておかなければなりません。 ここで問題なのが、S2Daoはインターフェースとして定義し、 実装(ロジック)を記述しない(しなくて良い)と言う点です。 つまり、例外ハンドリングはDaoではで

  • その2 Seasar2 コンポーネントの自動登録 - Seasar2 基本動作編

    その2 Seasar2 コンポーネントの自動登録 ページ 目次 コンポーネントの自動登録 スポンサード リンク 1.コンポーネントの自動登録 前回は複数のコンポーネントを登録するための手順を記載しました。 ただ、実際に使っていく際に、毎度コンポーネントを設定ファイルに記載しなければならないとなると大きな 手間になってしまい、開発の作業のテンポが悪くなってしまいます。 そこで今回はSeasar2に用意されているコンポーネントの自動登録を行ってみたいと思います。 前回使用した設定ファイルsample.diconは以下のようになっていました。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/d

  • S2JDBC の弱点を補完するS2AbstractService - 出羽ブログ

    このエントリーではSeasar 2.4.26 から 導入された S2AbstractService について書かせて頂きます。S2AbstractService を活用することで、タイプセーフを保ちつつも、データアクセスロジック関連のソースコードを大幅に減らす効果が期待できます。 S2JDBC の弱点 S2JDBCを使えば、お手軽かつパワフルにデータアクセス処理が実現できます。しかし、生のS2JDBCを野放し状態に使った場合、プロジェクトの規模が少し大きくなると、ソースコードの重複を生みやすくなる問題に直面します。具体的に、次の1件分のデータ取得処理ですら、コピー&ペーストされて複数箇所で使用されてしまいます。 Emp emp = jdbcManager.from(Emp.class).id(empId).getSingleResult(); 対処方法は、共通処理を抽出してメソッド化するこ

    S2JDBC の弱点を補完するS2AbstractService - 出羽ブログ
  • 『DIコンテナとドメインモデルの相性の悪さ』

    Seasar、SpringなどのDIコンテナを使っていると、ドメイン層の実装はデータ(Entity/Dto)と振る舞い(Service/Logic)に分ける、いわゆるトランザクションスクリプトのスタイルになりがちだ(参照(1)、(2))。理由は、1つにはドメインモデルの設計/実装そのものの敷居が高いこともあるが、そのハードルを乗り越えても、DIコンテナそのものがドメインモデルと馴染みにくい側面があるからだと思われる。 DIコンテナはエンティティやDTOにDIできない その側面とは、次の通り。DIコンテナは設計思想からしてファクトリの役目をするものであるため、DIコンテナを使う場合、インスタンスの生成は基的にDIコンテナが担当することになり、コンポーネントに必要なオブジェクトはすべてDIで渡されるような設計に誘導されてしまう DIを使ったWebアプリケーションのアーキテクチャは、まずリクエ

  • (pdf) ウェブアプリケーションフレームワークSAStruts入門 トライポッドワークスセミナー

    Innovate in Digital Society.Innovate in Digital Society.Innovate in Digital Society.

    (pdf) ウェブアプリケーションフレームワークSAStruts入門 トライポッドワークスセミナー
    kenichiice
    kenichiice 2008/09/05
    スライド「O/Rマッピングツール『S2Dao』入門」がある
  • SeasarのO/RマッピングツールS2Dao

    SQLファイルの内容を実行させる 前ページで新しいカテゴリを追加する処理を行った際、SQL文を自動生成させて実行したため、IDカラムの値を保存しようとしてしまうことになってしまいました。それでも先ほどの処理はうまく実行できましたが、いつも自動生成されるSQL文だけで必要とする処理ができるとは限りません。 そこで、開発者がカスタマイズしたSQL文を決められた形式の名称を持つファイル(SQLファイル)に保存しておくと、その内容を読み込んでデータベースに対して実行してくれる機能を用いて、新しいカテゴリを追加する処理を行うSQLをカスタマイズしてみます。 SQLファイルには、リスト7のように書き込んでおきます。/*〜*/の部分はSQLコメントという機能で、ここではcategory変数のnameプロパティの値を表しています。その次に記述されている'カテゴリ名称'は、仮にこの値が設定されていない場合の

    SeasarのO/RマッピングツールS2Dao
  • S2Daoのログ - 黒い猫の開発日記

    コネクション、トランザクション、SQLのログをLog4jで出すのにrootでログレベルをdebugにしてたんだけど、余計なものが大量に出力されたので調べてみた。 コネクション(物理的、論理的)取得 org.seasar.extension.dbcp.impl.ConnectionPoolImplコネクション(物理的、論理的)開放 org.seasar.extension.dbcp.impl.ConnectionWrapperImplSQL出力 org.seasar.extension.jdbc.impl.BasicHandlerトランザクション、コミット、ロールバック org.seasar.extension.jta.TransactionImplこれらのクラスをLog4jに記述すればそれぞれが出力される。 ログレベルはdebugなのでdebugを指定。 最初rootでやってたときにinf

    S2Daoのログ - 黒い猫の開発日記
  • HibernateとS2DaoとS2JDBCの考え方 - ひがやすを技術ブログ

    HibernateはEntityを中心に考えます。つまり、Javaを中心に考えるということですね。エンティティモデルとERモデルは、一致する必要はなく、それぞれでモデリングして、Hibernateが間をつなぎます。 メリットは、エンティティの設計がデータベースに引きずられることなく、そのドメインを正確に表したものになること。ほとんどのSQLは自動生成するので、SQLを書かなくてもすむこと。 デメリットは、エンティティとデータベースを個別にモデリングする必要があり、二つのモデル間でインピーダンスミスマッチが起きること。また、自動生成されたSQLの効率が悪くなるリスクがあります。継承や遅延ロードによってパフォーマンスが落ちることもあります。 フレームワークががんばっているので、機能が豊富なのですが、その分オーバヘッドがあり、学習コストがかかります。 S2DaoはSQLを中心に考えます。とはいえ

    HibernateとS2DaoとS2JDBCの考え方 - ひがやすを技術ブログ
  • [Seasar-user:9345] Re: コネクションプールの使われ方

    Koichi Kobayashi [E-MAIL ADDRESS DELETED] 2007年 7月 22日 (日) 22:00:09 JST 前の記事 [Seasar-user:9344] コネクションプールの使われ方 次の記事 [Seasar-user:9380] Re: コネクションプールの使われ方 記事の並び順: [ 日付 ] [ スレッド ] [ 件名 ] [ 著者 ] 小林 (koichik) です. Date: Sun, 22 Jul 2007 16:48:41 +0900 From: "Umebayashi Tsuyoshi" <[E-MAIL ADDRESS DELETED]> To: <[E-MAIL ADDRESS DELETED]> Subject: [Seasar-user:9344] コネクションプールの使われ方 > 上記セットで作成されたWEBアプリケーション

  • 1