2012年10月3日のブックマーク (2件)

  • Seasar2 - S2JDBC - サービスの作り方

    S2AbstractService エンティティに対する操作を格納するクラスをサービスと呼びます。 ビジネスロジックは、エンティティかサービスに定義します。 ものとして扱うことが自然なものはエンティティに割り当て、 ものとして扱うことが不自然なものはサービスに割り当てます。 例えば、データアクセスロジックは機能中心なので、サービスに割り当てます。 計算して求められるような導出プロパティは、エンティティに持たせます。 サービスは基的にエンティティと一対一で割り当てるのを推奨します。 ルールが明快なので、どのロジックがどこにあるのかが分かりやすいためです。 ロジックが探しやすければ、似たようなロジックを知らず(探せず)に 実装してしまう危険も少なくなります。 例えば、Employeeに対するサービスは、次のようになります。

    lintana
    lintana 2012/10/03
  • クッション  S2JDBCのトランザクション管理

    S2JDBCを単体で使用すると、トランザクション制御は自分で設定しないと駄目そうなのでメモ 補足:SAStrutsと組み合わせれば、デフォルトでAction単位でトランザクションを制御してくれます。 今回はserviceに対して、トランザクションをかけます。 とういのも、Batch処理でS2JDBCを使用し、logicで実際のDB更新処理をし、その上で、serviceが複数のlogicを制御し、logicが全て成功なら、commit、失敗ならrollbackとしています。 creator.diconにserviceパッケージをS2で管理するように以下を追加 <component class="org.seasar.framework.container.creator.ServiceCreator"/> customer.diconにトランザクション制御を追加 <component nam

    lintana
    lintana 2012/10/03