タグ

aopに関するhiro360のブックマーク (6)

  • 作って理解するDIコンテナ - きしだのHatena

    DIコンテナ使ってるけど、アノテーションってなんなの!って聞かれて、作ってみたらわかるよと答えてみたので、自分でも作ってみました。 よくわかった。 「DIコンテナ使うと何がいいの?」ということも、作ってみるとわかります。あと「DIって何がいいの?」に関しては、「DIはちょっとコードを書くのが楽になるだけで、それだけあっても仕方ない、大事なのはコンテナ」と答えるようにしてますが、コード比率からもそれがよくわかります。 続編としてWebフレームワークも作っているので参考まで。 作って理解するWebフレームワーク - きしだのHatena まずはコンテナを作る とりあえず1ソースの状態で。 こんな感じで、管理する型を登録できるようにします。 static Map<String, Class> types = new HashMap<>(); static void register(String

    作って理解するDIコンテナ - きしだのHatena
  • (その14)トランザクション管理 - あるまに

    AOP用途の73%を占めるトランザクション管理*1。これが分かればとりあえずGuiceを使ってみようという人が増えるかもしれないので、ちょっと試してみます。 トランザクション機能は他ライブラリを使う Guiceはトランザクションに関する機能を一切持っていません。ドキュメントを見ると"@Transactional"とか書いてあって紛らわしいのですが、「そういうアノテーションを使えば?」という程度の話です。なので、実際にトランザクション管理を行う場合は、自力で実装するか、他のライブラリの機能を使う事になります。今回はSpringのTransactionInterceptorを使ってみますが、Sesar2でもたぶん同じような事が出来ますし、ちょっとインターセプタを書けばHibernateのトランザクション機能を使う事も出来るはずです。 今回の要件 メソッドに@Transactionalと書くと、

    (その14)トランザクション管理 - あるまに
  • 2007-01-07

    予想通り(?)、反応は、まさたかさんと太一と横田さんだけですね。太一は予想してなかったけど。もともと、Seasar2は設定ファイルを書かないので、あまりニーズはないのかもしれません。 後、DSLとしてJavaを使うのは、JavaはDSLとしての記述力が弱いので、向いていないと思います。 そもそもAOPってそんなに使いどころあるでしょうか。 AOPは、使いどころありますよ。よく使うのをあげると トレースログ 例外処理 ログインチェック これらのAdviceは、ほとんどのシステムで有効だと思います。ログインチェックは、Servlet Filterでもできると思いますが、例外処理で元の画面に返すとか特定の画面に飛ばすとかFilterだとちょっとやりにくいですね。メソッドの呼出し毎にトレースログを取るとなるとAOP以外でやるのはちょっとめんどくさい。 また、Seasar2では、S2Daoのようにi

    2007-01-07
  • あまきた日記 - JavaScriptでアスペクト指向

    JavaScriptでオブジェクトにアスペクトを適用するコードを書いてみた。 アスペクトは単なる関数として書きます。 JavaScriptでアスペクト指向やってもあんまりおいしいところはないと思ってたけどそれなりに使える。 Dateオブジェクトにアスペクトを適用するテストケース。 function test_Object_Aspect_around() { var d1 = new Date("2006/09/16"); var status = null; var aspect = function(invocation){ var oldValue = invocation.target.getFullYear(); var result = invocation.proceed(); status = (oldValue == invocation.target.getFullYea

    あまきた日記 - JavaScriptでアスペクト指向
  • 【コラム】ライトニングJava (37) AspectJ 5(2) - メソッドの実行時間を測定する | エンタープライズ | マイコミジャーナル

    AspectJ 5を使えばアスペクトを織り込ませることができることは前回紹介した。今回は、実際に動作するシステムに対してAspectJ 5を使って実用的なアスペクトを適用する方法を紹介する。 アスペクトを適用するシナリオ まず、リスト1のようなソースコードがあったとする。これはローカルホスト(127.0.0.1)の25番ポートに接続して、接続と切断を行うソースコードだ。ローカルホストで動作しているSMTPに対して接続を切断を行うプログラムである。ローカルホストでSMTPサーバが動作していれば、実行するとプロンプト1のような結果が得られる。 リスト1 MailCheck.java import java.io.*; import java.net.*; public class MailCheck { public static void main(String[] argv) {

  • 【コラム】ライトニングJava (35) アスペクト指向(3) - AOPを適用するべきか否か | エンタープライズ | マイコミジャーナル

    アスペクト指向プログラミング(AOP)は、オブジェクト指向プログラミングを補完する便利な方法のひとつだが、すべてを補完する完璧な方法ではない。AOPを適用した場合に効果が高いものを見極めて、使っていくことが大切だ。 どういった場合にAOPを適用すればよいか考えるには、AOPの不得手とする面や、AOPの問題について知っておくといい。AOPの問題を把握しておけば、問題が発生しそうなシーンにAOPを適用するといった根的な問題を回避できる。 アスペクトへ分離できないものもある まず知っておくべきは、アスペクトに分離できるものと、そうでないものがあることだ。処理の特性の中には、アスペクトに分離することが不適切なものがある。横断的であればすべてアスペクトにまとめられるかといえば、そうではないのだ。 またAOPは、オブジェクト指向プログラミングを補完するどころか、オブジェクト指向プログラミングそのもの

  • 1