タグ

Seasar2とDIに関するbigbroのブックマーク (9)

  • Seasar2でdiconにアプリ設定を書く - NullPointer's

    「SAStrutsでアプリの設定はどう書く」の続き <component class="java.io.File" name="tmpDir"> <arg>"/tmp"</arg> </component> ognlでシステムプロパティを取り出せるので、例えばTomcatのcatalina.homeを指定出来る <component class="java.io.File" name="tmpDir"> <arg>@java.lang.System@getProperty("catalina.home")</arg> <arg>"tmp"</arg> </component> 以下と同じ File tmpDir = new File(System.getProperty("catalina.home"), "tmp"); Webアプリケーションのディレクトリを指定 <component c

    Seasar2でdiconにアプリ設定を書く - NullPointer's
    bigbro
    bigbro 2012/09/10
    diconファイルを設定ファイルとして使用する
  • SAStrutsでアプリの設定はどう書く? - NullPointer's

    例えばファイル出力先のディレクトリパスなど、アプリケーションの設定をどう書くべきか。propertiesファイルに書いて読み込めばいいと思ったが、そんな必要もなさそう。 コンテナに登録するコンポーネントは、インターフェースを実装したクラスである必要はないのだから、設定値をdiconに書いてコンポーネントとして登録し、Seasar 2.4から追加されたBindingアノテーションを使ってサービスやアクションのコンポーネントにセットしてしまうのが楽そうです。 <component class="java.lang.String" name="hoge"> <arg>"ほげほげ〜"</arg> </component> というのをどこかのdicon、例えばconfig.diconに書いてapp.diconでincludeするなどしてStringをコンポーネントとして登録。そして、その設定値を利用

    SAStrutsでアプリの設定はどう書く? - NullPointer's
    bigbro
    bigbro 2012/09/10
    diconファイルを設定ファイルとして使用する
  • DIは意識させたら負け。 - newta(にゅーた)の日記

  • DIを意識させたらキャズムは超えられない - ひがやすを技術ブログ

    Java でも比較的先進的な考えを持つフレームワークがたくさんあります。そして、先進的なフレームワークは作者でさえ、流行っている、たくさん利用されていると錯覚する場合があります。利用者となるプロジェクトには大抵、新しいことが好きな先進的な人がいて、アーキテクチャを決めてしまいます。そういう人はよくネットなどで情報を発信します。また先進的であれば、記事や書籍でこぞって取り上げられ(もちろん中の人の努力もあります)、流行ってるように見えてしまいます。実際には出来れば新しいことには手をつけたくない人のほうが圧倒的に多いにも関わらず。 どこかの掲示板で、DIは疎結合のためにあるとか、そのためにインターフェースと実装を分離するんだとか、再コンパイルせずに、設定ファイルの変更のみで実装を変更できるんだとか、書いている人を見て、懐かしく思いました。 こんないいもの(たとえばDI)を理解できないのは、理解

    DIを意識させたらキャズムは超えられない - ひがやすを技術ブログ
  • HttpServletRequest が COOL deploy で DI されなくなる - von Ewigkeit

    最近また Seasar で悩みまくってる今日この頃。 というわけで、今日はタイトルのような内容で悩みました。 原因はいまだわからず・・・。 HttpServletRequest のヘッダからある値を取得して、それを利用してゴニョゴニョする、みたいなインターセプタを2つ作る必要が出てきたので、下記のようなものを作りました。 Page クラスにかます ForPageInterceptor と、 S2Dao を利用する Dao クラスにかます ForDaoInterceptor みたいなインターセプタです。 ちなみに ForDaoInterceptor は、HttpServletRequest のある特定の値を引っ張って、INSERT および UPDATE の際に Entity の特定のフィールドに値をセットする、みたいなことを行います。 public class ForPageIntercep

    HttpServletRequest が COOL deploy で DI されなくなる - von Ewigkeit
  • InterceptorにrequestがDIされない - 俎上の鯉

    と同僚が質問してきた。 独自Interceptorを作成し、app_aop.diconにコンポーネントを追加したが、instance属性を指定しなかったため、singletonとしてTomcat起動時に独自Interceptorが生成される。しかしながら、requestは当然リクエスト時に作成されるため、独自Interceptor生成時点ではrequestインスタンスは存在しないため、DIされない。 そのため、instance属性をrequestと指定するように依頼した。そうするとhotdeploy環境ではDIされることが確認できた。 しかし、InterceptorからLogicをDIする設定にしているのだが、DIされない。app_aop.diconにコンポーネントを追加したため、SMART Deployではなくなっていた。InterceptorCreatorにより、interceptor

    InterceptorにrequestがDIされない - 俎上の鯉
  • SAStrutsでアプリケーション設定値をもたせる方法 - ただのおぼえがき

    アプリケーションの設定値、例えばファイルアップロードで使う一時領域のパスやシステムで使う定数などをpropertiesファイルで持たせようかと思ったけど、diconファイルに登録する便利な方法があったので。 SAStrutsのソースディレクトリ(src/main/resource)にconfig.diconファイルを生成し、設定値を管理する。例えば下記のようなString型の名前がsampleで値が”サンプル”を作ってみます。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <!-- サンプル --> <component class="ja

    SAStrutsでアプリケーション設定値をもたせる方法 - ただのおぼえがき
  • .NET開発者のためのDI&AOP入門(前編) ― @IT

    “DI”や“AOP”というキーワードを耳にしたことがあるだろうか。これらのテクノロジは、.NET技術者にはまだまだ普及していないのが現状だが、Java開発での長年の利用結果から見ても開発生産性を飛躍的に高めてくれるテクノロジであることは間違いなく、.NET開発でも必ず役立つものであり、むしろ使わない手はない。従って、できるだけ多くの.NET開発者にこれらのテクノロジの良さを知っていただき、有効に活用していただきたいと筆者は考えている。 そこで稿では2回にわたり、前編でDIを、後編でAOPを紹介していきたいと思う。稿を通して.NET開発におけるDIとAOPの有効性と可能性を感じ取っていただければ幸いである。 ■1. DIとAOPを理解するためのサンプルの作成 DI(Dependency Injection。依存注入)とAOP(Aspect-Oriented Programming。アスペ

  • 【ハウツー】Seasar 2.4リリース! 今更でも恥ずかしくない、始めてみようDIプログラミング | エンタープライズ | マイコミジャーナル

    新着記事一覧 やまと、群雄【動】シリーズに『クロノスの大逆襲』からケンリュウが参戦 [02:11 10/13]  ASUS、「ASUS PC Park 2008 Powered by Intel」開幕--大阪で最新製品を体験 [21:55 10/12]  小倉優子「消防団は親父も退治してくれます」 --「地域総合防災力展」が開催 [14:03 10/12]  【レポート】今週の秋葉原情報 - 大容量HDDに注目! 1.5テラが新登場、そして再び8千円切りの1テラも [02:08 10/12]  【インタビュー】「デザイナーがもっと面白く自由になればいい」-クリエイター・長谷川踏太 [21:47 10/11]  仲村みう、生涯"ゴスロリ"宣言 - 「おばあさんになっても続けます!」 [16:25 10/11]  新垣結衣、羽織袴姿で貫禄ポーズ - 映画『フレフレ少女』初日舞台挨拶 [16:0

  • 1