Load-time weaveingで広がるAOPの可能性



Similar documents
今さら人には聞けないAOP入門

S2DaoでもN:Nできます

2 Wee とは Wee はホームページの 更 新 ツールです Wee は サイトの 枠 組 みをWeb 製 作 業 者 が 作 成 し 更 新 は お 客 様 に 自 由 にしていただこうというコンセプトの 製 品 です インターネットに 繋 がる 場 所 ならどこからでも ブラウザでホームページ

1

5-1- 基 開 発 フレームワークに 関 する 知 識 現 在 普 及 が 期 待 されている 開 発 フレームワークの 実 際 の 開 発 運 用 Ⅰ. 概 要 の 際 に 必 要 な 管 理 知 識 手 法 の 種 類 と 特 徴 内 容 を 理 解 し 必 要 なノ ウハウを 実 務 レベル

V8.1新規機能紹介記事

全部まとめてHOT deploy

(Microsoft PowerPoint - Java\221\3461\225\224\211\357\224\255\225\\\227p\216\221\227\ ppt)

PowerPoint プレゼンテーション

通 知 カード と 個 人 番 号 カード の 違 い 2 通 知 カード ( 紙 )/H27.10 個 人 番 号 カード (ICカード)/H28.1 様 式 (おもて) (うら) 作 成 交 付 主 な 記 載 事 項 全 国 ( 外 国 人 含 む)に 郵 送 で 配 布 希 望 者 に 交

戦略担当者のための

Basic

Microsoft PowerPoint ppt

経験発表

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

2 課 題 管 理 ( 科 学 研 究 費 補 助 金 ) 画 面 が 表 示 されます 補 助 事 業 期 間 終 了 後 欄 の[ 入 力 ] をクリックします [ 入 力 ]ボタンが 表 示 されていない 場 合 には 所 属 する 研 究 機 関 の 事 務 局 等 へお 問 い 合 わせく

Seasar.NET入門

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

1. 前 払 式 支 払 手 段 サーバ 型 の 前 払 式 支 払 手 段 に 関 する 利 用 者 保 護 等 発 行 者 があらかじめ 利 用 者 から 資 金 を 受 け 取 り 財 サービスを 受 ける 際 の 支 払 手 段 として 前 払 式 支 払 手 段 が 発 行 される 場 合

Microsoft Word - FrontMatter.doc

5-2.操作説明書(支店連携)_xlsx

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高

<4D F736F F D2091E F18CB48D C481698E7B90DD8F9590AC89DB816A2E646F63>

PowerPoint プレゼンテーション

年齢別人数計算ツールマニュアル

<4D F736F F D208CA990CF96BE8DD78F918EAE82CC95CF8D >

1.ユーザーズマニュアル 目 次 1. ユーザーズマニューアル 目 次 2. 管 理 画 面 基 本 情 報 3_1. 施 設 情 報 管 理 メニュー / 情 報 修 正 について パート1 施 設 の 選 択 3_2. 施 設 情 報 管 理 メニュー / 情 報 修 正 について パート2 基

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

[2] 控 除 限 度 額 繰 越 欠 損 金 を 有 する 法 人 において 欠 損 金 発 生 事 業 年 度 の 翌 事 業 年 度 以 後 の 欠 損 金 の 繰 越 控 除 にあ たっては 平 成 27 年 度 税 制 改 正 により 次 ページ 以 降 で 解 説 する の 特 例 (

目 次 1. ログイン ユーザー 登 録 TOP 職 員...8 (1) 職 員 の 名 刺 表 示...8 (2) 職 員 の 名 刺 一 括 ダウンロード...8 (3) 職 員 の 名 刺 帳 から 検 索 検 索...9 (1) 氏 名

年金通信25-30厚年基金見直し(法改正概要)

<4D F736F F F696E74202D B B83678E9197BF2E B93C782DD8EE682E890EA97705D>

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図

MakeShop5 階 層 化 & 集 商 品 が 登 録 しているカテゴリーを 確 認 することはできますか? 各 商 品 がどのカテゴリーに 登 録 されているかは 商 品 情 報 の 編 集 画 面 でご 確 認 いただけます 商 品 管 理 > 商 品 の 設 定 > 商 品 の 検 索 /

<4D F736F F F696E74202D D382E982B382C68AF1958D8BE090A C98AD682B782E B83678C8B89CA81698CF6955C A2E >

(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

<4D F736F F F696E74202D2082C882E982D982C DD8ED88EE688F882CC82B582AD82DD C668DDA9770>

Microsoft Word - 第3章.doc

人 に 使 用 される 者 としての 勤 続 期 間 を 当 該 職 員 となつた 者 の 職 員 としての 勤 続 期 間 に 通 算 することと 定 められている 法 人 に 限 る )をいう 3 第 一 項 の 退 職 手 当 通 算 予 定 職 員 とは 任 命 権 者 又 はその 委 任

(Microsoft PowerPoint -

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

弁護士報酬規定(抜粋)

上 に 表 示 された 金 額 および 預 入 期 間 に 応 じた 利 率 を 適 用 します この 利 率 を 以 下 約 定 利 率 と いいます 専 用 定 期 預 金 の 利 息 は あらかじめ 指 定 された 単 利 または 複 利 のいずれかの 方 法 ( 以 下 単 利 型 または

<4D F736F F F696E74202D20938A8D65837D836A B A926B82CB82C182C E E >

Ⅰ 調 査 の 概 要 1 目 的 義 務 教 育 の 機 会 均 等 その 水 準 の 維 持 向 上 の 観 点 から 的 な 児 童 生 徒 の 学 力 や 学 習 状 況 を 把 握 分 析 し 教 育 施 策 の 成 果 課 題 を 検 証 し その 改 善 を 図 るもに 学 校 におけ

PDF閲覧制限システム(簡易版)概説書

第2回 制度設計専門会合 事務局提出資料

DN6(R04).vin

公 的 年 金 制 度 について 制 度 の 持 続 可 能 性 を 高 め 将 来 の 世 代 の 給 付 水 準 の 確 保 等 を 図 るため 持 続 可 能 な 社 会 保 障 制 度 の 確 立 を 図 るための 改 革 の 推 進 に 関 する 法 律 に 基 づく 社 会 経 済 情

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

は 固 定 流 動 及 び 繰 延 に 区 分 することとし 減 価 償 却 を 行 うべき 固 定 の 取 得 又 は 改 良 に 充 てるための 補 助 金 等 の 交 付 を 受 けた 場 合 にお いては その 交 付 を 受 けた 金 額 に 相 当 する 額 を 長 期 前 受 金 とし

シラバスの作成と管理用Webシステムの開発

検 討 検 討 の 進 め 方 検 討 状 況 簡 易 収 支 の 世 帯 からサンプリング 世 帯 名 作 成 事 務 の 廃 止 4 5 必 要 な 世 帯 数 の 確 保 が 可 能 か 簡 易 収 支 を 実 施 している 民 間 事 業 者 との 連 絡 等 に 伴 う 事 務 の 複 雑

はじめに確認していただきたいこと

Microsoft Word - 【事務連絡】居所情報の登録申請が間に合わなかった場合の取扱いの周知について.docx

(2) 勤 続 5 年 を 超 え 10 年 までの 期 間 については 勤 続 期 間 1 年 につき 本 俸 月 額 の100 分 の140 (3) 勤 続 10 年 を 超 え 20 年 までの 期 間 については 勤 続 期 間 1 年 につき 本 俸 月 額 の100 分 の180 (4)

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

図 3 多 肢 選 択 問 題 の 不 正 解 設 定 オプション 画 面 図 7 下 部 に 選 択 肢 を 表 示 した 例 ( 改 良 前 ) 図 4 不 正 解 の 場 合, 減 点 しないを 選 択 した 例 図 5 すべて 正 解 の 場 合 のみを 選 択 した 例 図 8 下 部 に

私立大学等研究設備整備費等補助金(私立大学等

中 間 利 払 日 とし 預 入 日 または 前 回 の 中 間 利 払 日 からその 中 間 利 払 日 の 前 日 までの 日 数 および 通 帳 または 証 書 記 載 の 中 間 利 払 利 率 によって 計 算 した 中 間 利 払 額 ( 以 下 中 間 払 利 息 といいます )を 利

CSI情報管理システム

後期高齢者医療制度

Office 10 パッケージ版「リンク集」


別 紙 第 号 高 知 県 立 学 校 授 業 料 等 徴 収 条 例 の 一 部 を 改 正 する 条 例 議 案 高 知 県 立 学 校 授 業 料 等 徴 収 条 例 の 一 部 を 改 正 する 条 例 を 次 のように 定 める 平 成 26 年 2 月 日 提 出 高 知 県 知 事 尾

ーがサーバーにファイルをアップロードしたり ファイルを 電 子 メールで 送 信 したために) 利 用 できるようになった 場 合 手 動 で 転 送 されたこれらのファイルにアクセスするユーザーまたはデバイスに CAL は 必 要 ありません 以 下 の 例 では 特 定 の 製 品 について 説

目 次 JAVIS Appli の 基 本 機 能... 3 JAVIS Appli について... 3 音 声 確 認 機 能 JAVIS Appli( 有 償 版 )の 機 能... 4 音 声 で 読 みの 確 認 をする... 4 辞 書 機 能... 5 単 語 を 登 録 する... 5

概 要 ホームページに 地 図 や 動 画 を 貼 り 付 けるこ とができます 地 図 は オフィスや 会 場 までのアクセス 地 図 として 利 用 できます また 商 品 やサービスの 説 明 をホームビデ オ(カメラ)で 撮 影 して 動 画 として 掲 載 する ことなどができます 地 図

特別徴収に関するQ&A

Microsoft Word - 教科書VBA_第1章2013_.doc

ez_meishi.ppt

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

<4D F736F F D2091DE90458F8A93BE82C991CE82B782E98F5A96AF90C582CC93C195CA92A58EFB82CC8EE888F882AB B315D2E312E A2E646F63>

資 格 給 付 関 係 ( 問 1) 外 国 人 Aさん(76 歳 )は 在 留 期 間 が3ヶ 月 であることから 長 寿 医 療 の 被 保 険 者 ではない が 在 留 資 格 の 変 更 又 は 在 留 期 間 の 伸 長 により 長 寿 医 療 の 適 用 対 象 となる 場 合 には 国

毎 月 の 給 与 等 ( )を 一 定 の 等 級 区 分 にあてはめた 標 準 月 額 の 上 限 が 現 行 の47 等 級 から50 等 級 に 改 正 されます ( 別 紙 健 康 保 険 料 額 表 参 照 ) なお 法 改 正 に 伴 い 標 準 月 額 が 改 定 される 方 につい

スライド 1

PowerPoint プレゼンテーション

【試用版】AppStudioクイズアプリ作成手順

2.4 箇 条 書 のスタイルを 変 更 する 右 クリックして 箇 条 書 と 番 号 付 け を 選 択 する. あとは 少 し 遊 べば, このようなことをやりたい 人 は 理 解 できると 思 います 3 いろいろな 入 力 ワープロを 使 う 上 で 肝 心 な 点 は, 空 白 調 整

SNSとLMSの強みと弱み 統合環境を目指して (教育学部紀要投稿用)

共 通 認 識 1 官 民 較 差 調 整 後 は 退 職 給 付 全 体 でみて 民 間 企 業 の 事 業 主 負 担 と 均 衡 する 水 準 で あれば 最 終 的 な 税 負 担 は 変 わらず 公 務 員 を 優 遇 するものとはならないものであ ること 2 民 間 の 実 態 を 考

<4D F736F F D ED28FDA8DD7837D836A B2E646F6378>

(3) 小 単 元 の 指 導 と 評 価 の 計 画 小 単 元 第 11 章 税 のあらまし の 指 導 と 評 価 の 計 画 ( 四 次 確 定 申 告 制 度 抜 粋 ) 関 心 意 欲 態 度 思 考 判 断 技 能 表 現 知 識 理 解 小 単 元 の 評 価 規 準 税 に 関 す

Taro-役員退職手当規程(H27.10改正)HP版

●電力自由化推進法案

■新聞記事

Microsoft Word - 文書 3

DIコンテナ 前 回 ご 説 明 したSpring DIコンテナに 共 通 するこ とは 依 存 を 注 入 することによってシステム 内 に 存 在 するオブジェクト 同 士 の 結 びつきを 緩 くすることで あり そのための 仕 組 み 提 供 を 意 味 する [Spring のDIコンテナ

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..

節 実 施 期 間 実 施 級 実 施 期 間 情 報 処 理 第 回 は 級 と 級 のみ 実 施 各 期 間 内 回 の 受 験 となります C 言 語 Java Visual Basic ワードプロセッサ 第 回 は 級 のみ 実 施 第 回 は 級 のみ 実 施 第 回 は 級 と 級 のみ

図 2 エクスポートによるシェープファイルの 新 規 保 存 新 規 保 存 するファイルは,より 分 かりやすい 名 前 をつけて 適 切 なフォルダ(shape フォル ダにまとめておくのがよい) 上 に 保 存 しておく 2 / 10

<4D F736F F D204D46834E A6D92E8905C8D905F93B193FC819593FA8E9F95D C5292E646F63>

Microsoft Word - 佐野市生活排水処理構想(案).doc

02【発出】280328福島県警察職員男女共同参画推進行動計画(公表版)

1

 


マネジメントシステム 認 証 規 則 目 次 1 章 総 則 1.1 一 般 2 章 マネジメントシステムの 登 録 2.1 一 般 2.2 登 録 原 簿 2.3 登 録 証 書 2.4 登 録 マークの 使 用 及 び 認 証 の 引 用 2.5 登 録 維 持 2.6 登 録 継 続 2.7

Flash基礎Chapter1_3稿.indd

東京大学生協ICカード利用規約

Transcription:

Load-time weavingで 広 がるAOPの 可 能 性 1

自 己 紹 介 名 前 : 木 村 聡 (きむら さとし) Seasarプロジェクトコミッタ: S2Struts S2Mai 舞 姫 仕 事 ( 株 )フルネス フレームワーク 自 動 生 成 ツール 2

これまで 書 いたものとか 書 籍 : Eclipseで 学 ぶはじめてのJava Seasar 入 門 ~はじめてのDI&AOP~ 雑 誌 Web 記 事 CodeZine DB Magazine WEB+DB Seasar2 徹 底 攻 略 (Vol.31) JavaWorld 開 発 者 にとって 易 しく 優 しい 軽 量 コンテナ Seasar2の 実 力 を 探 る (2005/05) 3

はじめに AOPの 乱 用 禁 止 4

AOPとは Aspect Oriented Programの 略 日 本 語 では アスペクト 指 向 プログラム ソフトウェアの 複 雑 さの 低 減 や 再 利 用 性 を 向 上 させる よく 使 われる 機 能 ログ 例 外 処 理 トランザクション 認 証 処 理 RPC 障 害 対 応 S2プロダクトだと S2Dao 5

簡 単 に 言 うと AOPの 仕 組 みを 使 うと 後 から 機 能 や 処 理 を 挿 入 することができるよ うになる 6

例 public String hello(string arg) { Strimg message = "Hello " + arg; System.out.println(message); return message; } 実 行 Hello World 7

例 public String hello(string arg) { Strimg message = "Hello " + arg; System.out.println(message); return message; } AOP 使 って 実 行 + 設 定 ファイル など 2009-03-14 17:00.00 BEGIN hello("world") Hello World 2009-03-14 17:00.01 END hello("world") : "Hello World" 8

AOPのメリット 生 産 性 の 向 上 共 通 処 理 を 記 述 しなくても 良 い 品 質 の 向 上 共 通 処 理 の 埋 め 込 み 忘 れが 減 る アノテーションの 処 理 を 組 み 込 みやすい 9

よく 見 かける 文 章 AOPを 使 って アプリケーションのソースコードを 一 切 変 更 す ることなく します 10

Struts Only このStrutsで 作 られたシステムに AOPでTraceを 出 してくれ 11

Struts Only 将 軍 様 Seasarで 作 り 直 してください そうしたら 出 来 ます 12

AOPは 適 用 が 難 しい クラスの 書 き 換 えが 必 要 コンパイル 時 に 書 き 換 える ツール/ 文 法 が 難 しい Java 以 外 の 言 語 ツールを 覚 える 必 要 がある AspectJとか 13

これまでの 条 件 SeasarなどAOPの 仕 組 みが 提 供 されているフ レームワークを 使 っていれば 出 来 る AspectJなどを 使 う 場 合 コンパイルし 直 せば 出 来 る AOPとDIコンテナは 相 性 が 良 い DIコンテナのメリット 14

深 いところには 手 が 届 かない Strutsとかライブラリの 中 のクラス ライブラリもコンパイルしなおせばOK 15

現 在 は できます 16

Demo 17

Demo S2のUtilクラスのシーケンス 図 を S2Javelinで 出 力 18

内 部 的 には バイトコードエンジニアリング Java5から 動 的 にバイトコードを 操 作 するた めの 枠 組 みが 提 供 されるようになった - javaagent クラスロード 時 に 操 作 可 能 実 行 時 コンパイル 時 ではなく JavaRebel Pleiades 19

できること メソッドに 仕 掛 ける privateも final,staticも コンストラクタに 仕 掛 ける 20

基 本 スペック AOP Alliance MethodInterceptor ConstructorInterceptor FieldInterceptor Java 標 準 javax.interceptor. AroundInvoke(AOP AllianceのMethodInterceptor) InvocationContext(AOP AllianceのInvocation) ExcludeClassInterceptors Interceptors 21

こんな 時 に 使 える バグFix 深 い 場 所 にあるクラスのログなど デバッグ 時 のtoString 個 人 の 生 産 性 を 高 める Unitテスト 戻 り 値 や 引 数 を 強 引 に 変 更 キャッシュ 22

こんな 時 に 使 える バグFix ライブラリのバージョンを 上 げたい でも アプリのコードがコンパイルエラーになるので 見 送 り 部 分 的 なパッチを 作 りAOPで 対 応 アプリのコードが 影 響 の 出 ないようにできる 23

使 用 方 法 1. jarを 配 置 2. java のオプション 指 定 java -javaagent:kimu-aop-core.jar foo.bar.main 3. 設 定 ファイルを 用 意 24

基 本 設 定 ファイル 解 説 ファイル 名 :aspect.xml Seasar2のdiconファイルを 意 識 対 象 となるクラスを 指 定 <aspect-config> <def target="org.apache.struts.action"> <aspect> new jp.dodododo.aop.interceptors.traceinterceptor() </aspect> </def> </aspect-config> 機 能 (TraceInterceptorは ログ) 25

正 規 表 現 で 指 定 設 定 ファイル 解 説 正 規 表 現 も 可 能 <aspect-config> <def target="jp.co.foo.bar.*serviceimpl"> <aspect> new jp.dodododo.aop.interceptors.traceinterceptor() </aspect> </def> </aspect-config> 26

メソッドの 指 定 設 定 ファイル 解 説 pointcutで 指 定 <aspect-config> <def target="jp.co.foo.bar.*serviceimpl"> <aspect pointcut="execute,tostring"> new jp.dodododo.aop.interceptors.traceinterceptor() </aspect> </def> </aspect-config> 指 定 しない 場 合 は implメソッド Genericsも 対 応 27

メソッドの 指 定 設 定 ファイル 解 説 正 規 表 現 も 可 能 <aspect-config> <def target="jp.co.foo.bar.*serviceimpl"> <aspect pointcut=".*"> new jp.dodododo.aop.interceptors.traceinterceptor() </aspect> </def> </aspect-config> 28

メソッドの 指 定 設 定 ファイル 解 説 notで 除 外 <aspect-config> <def target="jp.co.foo.bar.*serviceimpl"> <aspect pointcut=".*" not="tostring,hashcode"> new jp.dodododo.aop.interceptors.traceinterceptor() </aspect> </def> </aspect-config> 29

設 定 ファイル 解 説 アクセス 修 飾 子 の 指 定 <aspect-config> <def target="jp.co.foo.bar.*serviceimpl"> <aspect modifier="private"> modifierで 指 定 指 定 した 修 飾 子 以 上 new jp.dodododo.aop.interceptors.traceinterceptor() </aspect> </def> </aspect-config> public(デフォルト) protected package-private private 30

設 定 ファイル 解 説 Interceptorの 指 定 <def target="jp.co.foo.bar.*actionimpl"> <aspect> new jp.dodododo.aop.interceptors.traceinterceptor() </aspect> </def> <def target="jp.co.foo.bar.*serviceimpl"> <aspect> jp.dodododo.aop.interceptors.traceinterceptor.getinstance() </aspect> </def> Javaのコードを 1ステートメントで 記 述 31

設 定 ファイル 解 説 優 先 度 上 に 書 いてある 方 が 優 先 <aspect-config> <def target="jp.co.foo.bar.bazserviceimpl"> <aspect> new jp.dodododo.aop.interceptors.simpletraceinterceptor() </aspect> </def> <def target="jp.co.foo.bar.*serviceimpl"> <aspect> new jp.dodododo.aop.interceptors.traceinterceptor() </aspect> </def> </aspect-config> 32

設 定 ファイル 解 説 優 先 度 AOP 対 象 外 <aspect-config> <def target="org.apache.log4j.*" /> <def target="jp.co.foo.bar.*serviceimpl"> <aspect> new jp.dodododo.aop.interceptors.traceinterceptor() </aspect> </def> </aspect-config> 33

特 定 のメソッドを 対 象 外 にする Seasar2だと finalメソッドにする Interfaceからメソッドを 除 く pointcutで 頑 張 る public final String hello(string arg) { Strimg message = "Hello " + arg; System.out.println(message); return message; } 34

特 定 のメソッドを 対 象 外 にする kimu-aop Enhanceアノテーションで 指 定 ExcludeClassInterceptorsアノテーションで 指 定 (notで 指 定 ) 無 限 ループしないように 自 作 のインターセプタとかに 付 ける @Enhance(false) public String hello(string arg) { Strimg message = "Hello " + arg; System.out.println(message); return message; } 35

特 定 のメソッドを 対 象 外 にする kimu-aop Enhanceアノテーションで 指 定 ExcludeClassInterceptorsアノテーションで 指 定 (notで 指 定 ) @ExcludeClassInterceptors public String hello(string arg) { Strimg message = "Hello " + arg; System.out.println(message); return message; } 36

用 意 しているInterceptor お 約 束 (S2AOPと 同 じ) ログ 系 TraceInterceptor SimpleTraceInterceptor ThrowsInterceptor 同 期 TraceThrowsInterceptor SyncInterceptor 37

用 意 しているInterceptor 独 自 TraceWithCustomLoggerInterceptor TakeOverInterceptor CommonsBuilderInterceptor ToStringInterceptor CloneInterceptor 38

TraceWithCustomLoggerInterceptor クラス 単 位 でTraceログの 設 定 が 可 能 log4j.properties 39

TakeOverInterceptor Interceptorに 定 義 しているメソッドにシグネ チャが 同 じメソッドがあれば そのメソッドを 実 行 40

CommonsBuilderInterceptor Objectクラスメソッドの 実 装 public class CommonsBuilderInterceptor extends TakeOverInterceptor { public String tostring() { Object target = getthis(); return ToStringBuilder.reflectionToString(target); } public int hashcode() { Object target = getthis(); return HashCodeBuilder.reflectionHashCode(target); } public boolean equals(object obj) { Object target = getthis(); return EqualsBuilder.reflectionEquals(target, obj); } } 41

ToStringInterceptor 配 列 などに 対 応 42

CloneInterceptor シリアライズ デシリアライズ 43

S2AOPとの 違 い エンハンスしたクラス S2AOP: 対 象 のクラスを 継 承 したクラス KimuAop: 対 象 のクラスそのもの ターゲットのクラス 取 得 の 作 法 が 異 なる( 独 自 のInterceptorを 作 る 場 合 に 注 意 かも) InterceptorはSingletonでない 定 義 時 にgetInstance()とか 書 けばOK インターフェースを そのままインスタンス 化 できない ex:s2dao 44

今 後 Unitテスト 用 の 仕 組 みを 提 供 ( 今 もあるけど 変 更 する 予 定 ) 45

プロダクト 情 報 名 前 Kimu-aop URL http://code.google.com/p/kimu-aop/ 46

まとめ AOPの 乱 用 禁 止 kimu-aop ほぼ 何 でも 出 来 る いままでリーチできなかったクラスにリーチ S2AOPとの 違 いに 注 意 47

終 わり ご 清 聴 ありがとうございました 48