5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【DI】Java Spring Frameworkを語るスレ 4.0

1 :目黒クラスタ ◆0anDvOSTbk :2008/11/21(金) 00:49:36
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1216212651/l50

公式
ttp://www.springframework.org/

2 :デフォルトの名無しさん:2008/11/21(金) 01:11:55
Springスレってテンプレないんだっけ?
取りあえずこんなんでどーよ?


Spring-Java/J2EEアプリケーションフレームワークリファレンスドキュメント(2章まで最新版)
ttp://andore.com/money/trans/spring_ref_ja.html

EclipseプラグインSpring IDEを使ってみよう (1/3) - @IT
ttp://www.atmarkit.co.jp/fjava/rensai4/spring2_01/spring2_01_1.html

Springは「2.0」でどんだけ便利になったの? (1/3) - @IT
ttp://www.atmarkit.co.jp/fjava/rensai4/spring2_02/spring2_02_1.html

Spring 2.0で自分なりの開発スタイルを確立しよう (1/3) - @IT
ttp://www.atmarkit.co.jp/fjava/rensai4/spring2_03/spring2_03_1.html

【ハウツー】Spring 2.0を早速使う - どのくらい簡単になった? (1) 待望のSpring Framework 2.0リリース (MYCOMジャーナル)
ttp://journal.mycom.co.jp/articles/2006/10/05/spring20/

Spring 2.0によるDBアプリケーションの作成
ttp://www.okisoft.co.jp/esc/spring/index.html

InfoQ: Spring 2.0: 最新情報と Spring 2.0 が重要な理由
ttp://www.infoq.com/jp/articles/spring-2-intro

InfoQ: Spring 2.5の新機能―Part 1
ttp://www.infoq.com/jp/articles/spring-2.5-part-1

InfoQ: Spring 2.5の新機能を使ってアプリケーションを作る(その1)
ttp://www.infoq.com/jp/articles/spring2.5-1


3 :目黒クラスタ ◆0anDvOSTbk :2008/11/21(金) 01:14:48
>>2
おぉ!サンクス!
助かったよ。

4 :続き:2008/11/21(金) 01:18:23
InfoQ: Spring 2.5の新機能を使ってアプリケーションを作る(その2)
ttp://www.infoq.com/jp/articles/spring2.5-2

【書籍】

Spring入門
ttp://www.amazon.co.jp/dp/4774123412/

Spring2.0入門
http://www.amazon.co.jp/dp/4774130001/

SpringによるWebアプリケーションスーパーサンプル
http://www.amazon.co.jp/dp/4797334223/


こんなとこでいいかな?

5 :デフォルトの名無しさん:2008/11/21(金) 01:37:01
IoCとかDI自体についてはこの辺がいいのかな?

Inversion of Control コンテナと Dependency Injection パターン
ttp://kakutani.com/trans/fowler/injection.html

Inversion of Controlパターンでコンポーネント間の結びつきを弱める - japan.internet.com デベロッパー
ttp://japan.internet.com/developer/20051011/28.html

あと2スレ目だけ以下にあった。

【DI】Java Spring Frameworkを語るスレ 2.0
ttp://www.23ch.info/test/read.cgi/tech/1169517585/


手玉が尽きたんで、あとよろしく。

6 :デフォルトの名無しさん:2008/11/21(金) 08:40:39
staticフィールドに対してAutoWiringする標準的な方法って何かありますか?
ユーティリティクラス内で使う設定をSpring管理にしたいのですが・・・。

一応、インスタンスメソッドとしてsetter用意すればされるようなのですが、その他に何かやり方があれば教えてください。

7 :デフォルトの名無しさん:2008/11/21(金) 18:38:43
>>6

そのやり方だとstaticメソッドしか持たないユーティリティクラスでも、Springによって1つはインスタンスが作られるんだよね?

他のやり方だと一応こんなんやってる人いたけど、いいのか悪いのかは分からん。

ttp://d.hatena.ne.jp/futokiyo/20080712/1215848272


8 :デフォルトの名無しさん:2008/11/22(土) 01:10:13
Springの新しいメンテナンスポリシーでJava界の勢力図が変わる - ひがやすを blog
ttp://d.hatena.ne.jp/higayasuo/20080921/1221962998

Springは心を改めた - ひがやすを blog
ttp://d.hatena.ne.jp/higayasuo/20081009/1223535065

9 :デフォルトの名無しさん:2008/11/22(土) 22:44:58
Bean定義ファイルでutil:mapのkeyとvalueに任意の型を指定したい場合ってどう書けばいいですか?
デフォルトだとString型ですよね?


10 :目黒クラスタ ◆0anDvOSTbk :2008/11/22(土) 23:27:34
>>9
こんな感じ。

<util:map id="priceMap">
  <entry>
      <key>
        <bean class="java.lang.Integer" scope="singleton">
          <constructor-arg value="3" />
        </bean>
      </key>
      <bean class="java.lang.String" scope="singleton">
        <constructor-arg value="150円" />
      </bean>
  </entry>
</util:map>

11 :デフォルトの名無しさん:2008/11/24(月) 23:10:32
もしかしてもう誰も使ってないの?
誰かなんか語ろうぜ・・・。


12 :デフォルトの名無しさん:2008/11/26(水) 02:05:23
Japan Spring Framework User Group
ttp://groups.google.co.jp/group/jsug

13 :デフォルトの名無しさん:2008/11/26(水) 19:19:10
まあ、普通に使っている人にしてみれば、今更特に語ることもないからな〜

14 :デフォルトの名無しさん:2008/11/28(金) 03:51:34
これだけレスつかないってことは誰もSpring使ってないんじゃないかと妄想。

15 :デフォルトの名無しさん:2008/12/01(月) 22:43:29
>>14
これから使う予定です
軽く本で勉強したいのですが、お勧めの書籍などありましたら、教えてください

16 :デフォルトの名無しさん:2008/12/01(月) 22:59:12
うんこ

17 :目黒クラスタ ◆0anDvOSTbk :2008/12/04(木) 17:21:11
>>15

テンプレにもあるが和書なら↓。

Spring入門
ttp://www.amazon.co.jp/dp/4774123412/

Spring2.0入門
ttp://www.amazon.co.jp/dp/4774130001/

18 :目黒クラスタ ◆0anDvOSTbk :2008/12/04(木) 17:22:14
>>16

荒らすのやめてください!

19 :デフォルトの名無しさん:2008/12/04(木) 23:34:23
とある魔術の禁書目録<インデックス>

舞台は総人口230万人弱、東京西部の大部分を占める巨大な都市。
その人口の約8割が学生ということから、『学園都市』と呼ばれていた。
学園都市の生徒達は、超能力を発言させるための特殊なカリキュラムが組まれていて、
その能力によって、『無能力』(レベル0)から『超能力』(レベル5)までの6段階で査定されていた。
主人公・上条当麻(かみじょうとうま)は、学園都市の高校生だが、その評価は落第寸前の無能力(レベル0)。
なぜなら彼の右手には、“異能の力ならなんでも打ち消す”『幻想殺し』(イマジンブレイカー)と呼ばれる能力が宿っていたからだ。
そして彼はこの右手のおかげで、“神のご加護”まで打ち消してしまい、常に不幸な人生を送っていた。
しかし、そんな日常に突如変化が訪れる。 彼の部屋に、不思議少女が空から登場というありがち展開に。
「ありえねぇ……」と上条当麻はつぶやくが、自らを『禁書目録』(インデックス)と名乗るその少女はこう言った。
自分は“魔術”の世界から逃げてきた――と。
そこへインデックスを追ってきた“魔術師”も現れた。
“魔術師”の狙いは、彼女、インデックスの頭の中にあるという“10万3000冊”の“魔道書”だという。
当麻はインデックスを守るため、その“異能を打ち消す力”を持つ右手を握り締める。
“科学”(上条当麻)と“魔術”(インデックス)の出会から、物語は始まる……!

20 :デフォルトの名無しさん:2008/12/05(金) 02:18:50
とてもおおきな Java プロジェクトに途中から入りました。
DI コンテナは Spring 2.0を使っています。*.java は 5000 以上あります。

Eclipse 3.4 に Spring IDE を入れてみたのですが、
ここまで大きいとかなり Spring IDE の builder が重いです。

デフォルトの状態だと、application.xml や *.java に修正しただけで(保存しなくても)
整合性チェックが走り、とても重いのですが、これは仕方ないでしょうか?

Spring IDE の builder が、*.xml だけでなく *.java を修正しただけで
builder が走るのは、たとえば *.java を修正して setter メソッドがなくなったら、
application.xml に赤マークをつける必要があるので、考えてみると仕方ない気がするのですが・・・

Eclipse の、設定→Spring の use check detection for java source files を
外してみましたが、結局 Ctrl - s を押してセーブすると、また延々と builder が走るので
結局プロジェクトバリデータ、プロジェクトビルダーのすべてのチェックを外しています。

これだと application.xml を修正するときのコンテンツアシストぐらいしかメリットがありません。

いちおう、ソースをリポジトリにコミットする直前に、プロジェクトバリデータ、プロジェクトビルダーの
チェックをつけ直して、クリーンして xml に間違いがないか確認していますが、やや面倒です。

ながくなりましたが、巨大プロジェクトで Spring IDE を使うとき、みなさんどうしてますか?




21 :デフォルトの名無しさん:2008/12/05(金) 09:48:00
参考にならないと思うけど、最近うちで作ったシステムの話。

春先から作りはじめて10月から稼働を始めた3000javaなシステム。
Spring 2.5でアノテーションを使っているので、
applicationContext.xmlはSpring IDEも使わず手書き。

詳細は以下。

規模はアプリケーションレイヤのみで2500(700は自動生成)、
フレームワークレイヤは500。

そのうち、Springで管理するコンポーネント数300チョイ。

アクション:50(ユースケース単位)
ロジック:90
データアクセス:140

はアノテーションベースで管理。

applicationContext.xmlに手書きしているのは25(一番多いのはDWR用)。


22 :デフォルトの名無しさん:2008/12/06(土) 00:28:59
/   //   /   //    ______     /   //   /
 / //   /|   r'7\ ,.ヘ‐'"´iヾ、/\ニ''ー- 、.,   /    /
  /   / |  |::|ァ'⌒',ヽ:::ヽrヘ_,,.!-‐-'、二7-ァ'´|、__
`'ー-‐''"   ヽ、_'´  `| |:::::|'"       二.,_> ,.へ_
         /  //__// / / /      `ヽ7::/
 か っ も  |  / // メ,/_,,. /./ /|   i   Y   //
 ァ  て う.  |'´/ ∠. -‐'ァ'"´'`iヽ.// メ、,_ハ  ,  |〉
  |  約 ク  ヽ! O .|/。〈ハ、 rリ '´   ,ァ=;、`| ,ハ |、  /
  |  束 ソ   >  o  ゜,,´ ̄   .  ト i 〉.レ'i iヽ|ヽ、.,____
  |  し  ス  /   ハ | u   ,.--- 、  `' ゜o O/、.,___,,..-‐'"´
  |  た  レ  |  /  ハ,   /    〉 "从  ヽ!  /
  |  じ  は  |,.イ,.!-‐'-'、,ヘ. !、_   _,/ ,.イヘ. `  ヽ.
 ッ .ゃ .立   |/     ヽ!7>rァ''7´| / ',  〉`ヽ〉
 ! ! な  て   .',      `Y_,/、レ'ヘ/レ'  レ'
   い  .な    ヽ、_     !:::::ハiヽ.   //   /
   で   い   ./‐r'、.,_,.イ\/_」ヽ ',       /  /
   す      /    `/:::::::/ /,」:::iン、 /    /
          〈  ,,..-‐''"´ ̄ ̄77ー--、_\.,__  /
      ,.:'⌒ヽ ´         | |  , i |ノ   `ヾr-、
(CV:松岡修造)

23 :目黒クラスタ ◆0anDvOSTbk :2008/12/06(土) 21:49:39
>>22

クソスレじゃないです!
荒らすのやめてください!!

24 :デフォルトの名無しさん:2008/12/17(水) 21:29:35
2.5の和書がない件について

25 :デフォルトの名無しさん:2008/12/17(水) 23:15:59
164の友人ではないが(たぶん)、転勤で熱田区から新宿区に今年転居した。
東京都心部は、名古屋駅〜金山〜今池ぐらいの鉄道状況が名古屋市内全域に整備された感じ。

26 :デフォルトの名無しさん:2008/12/21(日) 12:19:03
EJBがあるからもうspringイラネ

27 :デフォルトの名無しさん:2008/12/21(日) 22:53:30
http://iroiro.zapto.org/cmn/jb2/data2/jb7126.gif
http://iroiro.zapto.org/cmn/jb2/data2/jb7127.gif
http://iroiro.zapto.org/cmn/jb2/data2/jb7128.gif
http://iroiro.zapto.org/cmn/jb2/data2/jb7129.gif
http://iroiro.zapto.org/cmn/jb2/data2/jb7130.gif
http://iroiro.zapto.org/cmn/jb2/data2/jb7131.gif
http://iroiro.zapto.org/cmn/jb2/data2/jb7132.gif

28 :デフォルトの名無しさん:2008/12/25(木) 01:14:37
外人が日本人を特別視してるってのは、自分の国の歴史少しでも知ってたら誰でも分かるだろ。
まず、資源が全くないってことはすごいこと。もう両手両足もがれたぐらいのハンデ。
しかもすごいのは、米国の3分の1の人口、わずか25分の1の領土で、
その上ただでさえ極小の国土の7割が山、山、山。なーんにもない、山・・・。
だから農業で輸出して食べていくことすらできない。条件からして最貧国でもおかしくない国。
そんな国が、100年ほど前で当時世界最強クラスだった露助とか清をあっさり倒して、
非白人国家で普通に白人常任倶楽部仲間入りしちゃってて、おまけに米国敵に回して
ガチで戦争して、世界で唯一米国本土爆撃して、英国の無敵艦隊フルボッコにして、
オランダ倒して、世界で唯一原爆落とさせるほどてこずらせて。しかも二発だよ。二発。考えられない。
敗戦とか言ってるけど日本のせいでアジアから白人の植民地全部消されたし。
しかも信じられないのは、戦争に負けてただでさえ何にもない国がさらにインフラまで全部叩き潰されて、
多額の賠償金まで背負わせて100%再起不能にしといた極貧衰弱国家で、
今度こそ生意気なイエローモンキーJAPが消えて数百年はウザイ顔見ないで済むと思ってたら、
直ちに再び白人社会に経済で参戦して来くさって、参戦どころかごぼう抜きでたった2,30年であっという間に米国さえ抜いて世界第一位。
東京の土地だけで米国全土が買えるほどの呆れた価値になっちゃう程の超絶経済力で世界中( ゜Д゜)ポカーン・・・状態。
その後もずーっと二位維持。頭一本でそれ。
しかも経済の80%が内需。内需だけでそれ。
金融とかでまだ全然進出してないし車や家電、工業製品ももまだまだ進出しきってなくてそれ。
もうキチガイの域。伸びしろありすぎワロタ。戦後60年一発も打たずに侵略せずにこれ。
何気に世界最長寿国とかなってる。んで今度は漫画・アニメ・ゲーム。気がつけばハリウッドの規模とっくに超えてる。
アメリカの検索で一位になってるのが日本のアニメとか。世界中で一番人気の映像作品が日本のアニメとか。
極めつけは世界一長い国号、2000年のどの白人より長い王室ならぬ、その上の皇室保有。エンペラーに代表される歴史。
普通の神経してたらこんな国怖くて関わりたくないわな。

29 :デフォルトの名無しさん:2009/02/03(火) 00:00:05
全然人が来なくなったね...。
SpringSourceが東京でトレーニングをするらしいけど、どれくらい受ける人いるんだろう?
ttp://www.springsource.com/training/sp001/nrt-20090224/?geonr

30 :デフォルトの名無しさん:2009/02/05(木) 17:42:09
Spring の jar をダウンロードするために、
ひさしぶりに http://www.springframework.org にいったが、
downloads ページに行ったら、community の方でも、メアド登録が必要になってた。
なんかめんどくさくなったなぁ。

どうしてもいやなひとは、maven のリポジトリ等から直接落とせるけど。

31 :デフォルトの名無しさん:2009/02/05(木) 21:32:24
「やべぇ…なにこれ。マジでパネェ…。」
思わず立ちすくみ息を飲んだ。
目の前にはドロハンにWレバー、KEOcarbon、9速i-motion9化
されたESCAPE Ri3があった。
黒光りするシックなフレーム、野性を感じるスタイリング…。

「俺のRi3に何か?」
どうやらこいつが持ち主のようだ。パッとしない感じで、オドオドしている。
「ああ、ごめん。すごいイジってるんだなと思ってさ」
持ち主の目が急に輝きだし、雄弁に語り始めた。
ピストバイクに間違われたこと、TREKをぶち抜いたこと、箱根峠で足をつかなかったこと、
湘南で一番イケてるescapeという名の英雄に憧れたこと…。

ひとしきり話したあと、彼は俺に聞いた。
「君ももしかしてスポーツ自転車乗りなの?ひょっとしてRi3乗り?」
すこし躊躇ったが正直に答えた。
「…ああ、そう。自転車乗り。俺の自転車はあれなんだ。」
彼は俺の指した方向を見て驚愕した。
「あ、あれって…まさかREVIVE!?」
「…いや、i3なんだ…。REVIVE i3ってね」
彼は涙目になっていた。そして顔を真っ赤にしてこういった。
「う、うらやましくないぞ!俺のESCAPEには野性があって、プライドがあるんだ!」
ESCAPE Ri3に跨り、彼は逃げるように去った。ノーヘルのままで。

まいったな。確かに内装クロスごときをあんなヘンテコにイジってるから、
面白がって見てたが、傷つけるつもりはなかったのに…。
彼の最後の言葉を思い出して、我慢していた腹筋がとうとう決壊した。
「さて、野性とプライドとやらをぶち抜きに行くか……プッ」
遅いから、先に発進したかったのに。
キング オブ 内装変速クロスバイク、ESCAPE Ri3。

32 :デフォルトの名無しさん:2009/03/08(日) 19:17:57
applicationContext.xml において、<util:list> タグを使うと List のインスタンスを作ることが出来ます。

<util:list id="hogeList">
 <value="aaa"/>
 <value="bbb"/>
 <value="ccc"/>
</util:list>

この hogeList という bean を、List を引数に持つ setter メソッドがある bean に
Setter インジェクションすることが出来ます。

んで、Integer 型のインスタンスを作ることは出来ないでしょうか?
以下のようにやればとりあえず出来たが、なんかちょっとダサい。

<bean id="MAX_VALUE" class="java.lang.Integer">
 <constructor-arg>
   <value>5</value>
 </constructor-arg>
</bean>

<util:***> をさがしてみたけど、なさそうなのですが・・・

33 :デフォルトの名無しさん:2009/03/10(火) 18:55:12
util:constant

34 :デフォルトの名無しさん:2009/04/10(金) 18:28:37
あるある

35 :デフォルトの名無しさん:2009/04/21(火) 20:31:39
Hosyu

36 :デフォルトの名無しさん:2009/05/02(土) 17:04:39
あったあった

37 :デフォルトの名無しさん:2009/05/04(月) 13:51:49
www.springframework.jpが403になるのは・・・なんで?

38 :デフォルトの名無しさん:2009/05/05(火) 02:34:09
Springって、Webアプリケーション以外にも有用でしょうか?
小規模(5kステップ程度)なスタンドアローンアプリを作ろうとしています。

解説サイトを見ても、Webアプリを作る前提の解説ばかりなので、
スタンドアローンアプリでのSpring利用を体験されている方がいれば、お話を伺いたいです。

39 :デフォルトの名無しさん:2009/05/05(火) 03:54:18
そもそもどうしてそのアプリでDIコンテナを使おうと思ったのかね?
それを考えると有用かどうかは解るんじゃないの?

40 :デフォルトの名無しさん:2009/05/05(火) 06:14:45
返信ありがとうございます。

まず、作成しようとしているアプリは、対象サーバから情報を取得し、
その情報を加工して出力するアプリです。
現段階で、出力方法を一種類に決定できないため、
DIを利用し、後で出力用クラスを入れ替え可能にしておくと、
アーキテクチャとして綺麗になるかなと考えていました。

ただ、DIを使うまでもなく個別にコンパイルしてもよいため、
出力用クラスの入れ替え以外にも、単体テストが行いやすいなど、
スタンドアロンアプリでのDI利用の大きなメリットが存在すれば
利用してみたいと思い、質問していました。


41 :デフォルトの名無しさん:2009/05/07(木) 00:03:30
>>40
そのアプリは Swing などの GUI をもつものなのか、
それともバッチなのかな?

web アプリだけでなく、バッチでも Spring 使っているところは多いと思うし、
たぶんあなたの用途でも有効利用できると思うよ

42 :41:2009/05/07(木) 00:42:35
というか自分もバッチで Spring 使っている

43 :40:2009/05/08(金) 02:52:08
>>40
GUIは持たないのですが、サーバーを監視し続けるデーモンを作ろうとしています。

Spring有効そうですね。これまで使ったことなかったので、決断できずに質問をしていました。
JUnitとの連携でアノテーションが出てきたり、不明な点もありますが、習うより慣れろですね。
利用してみます。ありがとうございました。

44 :41:2009/05/08(金) 05:13:39
>>43
なるほど。

いきなりアドバンスドな例になるけど、Apache Geronimo や ServiceMix などは、
自分自身の内部で Spring を使っている。(モジュールを DI 化している)

Spring はいろいろなことが、いろいろな書式で出来るから翻弄されるけど、
本質は「オブジェクトを DI 化して、差し替え可能にする」ことなので、それを忘れないこと。

Spring + JUnit でも、アノテーションを使わずにできる。
Spring のいいところは、やりたいことが、アノテーション方式でも XML 方式でも、複数のやり方が用意されている点。

初めてということなので、ググりまくるより、以下の2冊を頭っから読んでいった方がいいと思う。
少し古い面もあるけど、それこそ本質が書いてあるので、
ググって頭でっかちになるよりいいと思う。

http://gihyo.jp/book/2005/4-7741-2341-2
http://gihyo.jp/book/2007/4-7741-3000-1

サーバを監視続けるデーモンとのことだけど、
自分の例では、よく Web サービスクライアントとなる部分を Spring の DI でつくるけど、
クライアントクラスはインターフェースとして定義しておき、
実装(具象クラス)を、Axis2 を使ったものにしたり CXF を使ったものにしたり、複数用意して
applicationConfig.xml の設定で使い分けたりしている。(CXF だと動くのに Axis2 だと動かない、など)

そのクライアンととなるクラスを呼び出す、親のサービスクラスをテストするときは、
Webサービスクライアントをモックにしてしまえばいいわけだから、何かの値をハードコーディングするような
クラスを書いてしまい(Axis2 も CXF もいらない)、テスト時は applicationContext.xml でその具象クラスを DI するようにすればよい
(もちろん EasyMock などを使っても良いが、ここでは触れないでおく)

デーモン化したければ、quartz と組み合わせる例も上記の書籍(上の方)に載っている。
実業務で使えるものかどうかはわからないが、イメージはつかめると思う

45 :40:2009/05/12(火) 00:45:29
>>41
返信が遅くなりました。申し訳ありません。
多くのアドバイスありがとうございます。かなり具体的な内容でそのまま役に立ちそうです。
Springをある程度理解してから、それぞれ調べてみます。

今とりあえず、上の本「Spring入門」を購入し、読んでいます。
Springの説明だけでなく、随所に挿入されているコラムがとても参考になります。
まだ最初しか読めてませんが、P.23の「安定依存原則と依存関係逆転原則」など
アプリケーション設計を考える上での重要な概念を学べて、
今後の開発で活きてくる知識だと感じています。

たくさんのアドバイスありがとうございました。

46 :デフォルトの名無しさん:2009/05/17(日) 20:00:22
Spring DM使い始めたが、これ使うとOSGi用のBundleActivatorさえ要らないんだな。
SpringとOSGiを使いながらSpringやOSGiのAPIへの依存さえコード上には存在しなくなる。
サーバー側だけじゃなくて、拡張性持たせるクライアントアプリとかにも良さそう。

47 :デフォルトの名無しさん:2009/05/17(日) 20:18:59
むしろクライアントアプリの方が活きる

48 :デフォルトの名無しさん:2009/05/17(日) 22:01:50
Eclipse って、もうすでに、中で OSGi(Equinox) が動いているんだっけ?

49 :デフォルトの名無しさん:2009/05/17(日) 22:35:42
>>48
3.0からそうだよ

50 :デフォルトの名無しさん:2009/05/17(日) 22:36:12
>>48
3からはOSGiベースだよね。要するにOSGiバンドルの集合体=Eclipse 3.x。
ただ元々OSGiじゃないプラグインシステムを置き換えたから、
独自仕様とOSGiの部分が混在してる。

ServiceMix Kernelは4からFelix(OSGi実装)+SpringDMでやってたっけ。
ドキュメントが少なくてまだよく分かってない部分も多いけど、
あの方向性は興味ある。

51 :デフォルトの名無しさん:2009/05/17(日) 22:36:15
いまだに俺はOSGiがなんの役に立つか分からないし、実現される気がしない。なんだあれ?
心の中で「オスギ」と読んでるのは俺だけでいい。

52 :デフォルトの名無しさん:2009/05/17(日) 22:41:51
>>51
元々モバイル用とも想定してたから動的にモジュールのロード云々とか
言われるけど、それよりもJava 7で入れるのどうのこうの言われてる
スーパーパッケージみたいな概念の方がより意味がある。
どのパッケージを外部に公開するか、どの外部パッケージの
バージョンいくつをインポートしろとかをメタデータに記述出来るので
例えばJAX-B 2.1と2.0を同じランタイム上で混在させたり出来る。
Eclipseが採用したのもたぶんその辺りがプラグインアーキテクチャ向けだったからだろうね。

53 :デフォルトの名無しさん:2009/05/17(日) 22:51:38
>>51
http://shinh.skr.jp/yomikata/#OSGi

54 :48:2009/05/18(月) 02:49:05
みなさんレスどうもありがとうございます。

>>50
おー、ServiceMix を追っかけている人発見。
自分も追いかけをしているけど、思った通り動かない部分もあるし、
ドキュメントもだんだん追いつかなくなってきているし、ServiceMix は正直疲れる。

>>51
Java の ClassLoader で困ったりすると、OSGi に興味がわくと思いますよ。
APサーバ本体に(たとえば) spring の jar をつっこんでいて、デプロイしたアプリケーションに
ちょっと違うバージョンの spring の jar を含めていて、なんで NoSuchMethodError がでるんだろう、とか。

55 :デフォルトの名無しさん:2009/05/18(月) 14:41:04
>>54
ServiceMixとかも含めて、Spring DMとOSGiフレームワーク使って色々開発
するときの一番めんどくさいのは、やっぱりまだOSGiバンドル化したものが
有名どころだけで、ちょっとマイナーなライブラリだと自分でラッピングしなきゃ
行けない所だろうなあ。Mavenとか使ってると特にそう思う。
SpringSourceのバンドルレポジトリは結構がんばってるけど

56 :デフォルトの名無しさん:2009/05/20(水) 12:55:16
Springでトランザクション管理を行うtxスキーマについて質問なのですが、
propagationで使用する「REQUIRES_NEW」と「NOT_SUPPORTED」では何が違うのでしょうか?

以下のページでは既存のトランザクションを停止し、
(新たなトランザクションを開始|トランザクション外で処理を実行)との記載がありますが、
動作的に違いがあるのでしょうか?

http://www.techscore.com/tech/Others/Spring/6.html

57 :デフォルトの名無しさん:2009/05/20(水) 13:07:14
>56
書いてあるとおりだが、何がわからない?

58 :56:2009/05/20(水) 13:19:53
>57
懸念しているのがNOT_SUPPORTEDの場合、「既存のトランザクションを停止し、
トランザクション外で処理を実行」とありますが、
InsertやUpdate,Deleteのようにトランザクション外で実行されると困る処理があります。

また、REQUIREDの場合、「既存のトランザクション内で処理を実行」とありますが、
既存のトランザクション内で処理を実行してしまうと、どちらか片方で処理でロールバックが発生した場合には
両方ともロールバックされますよね?
結果的にWebアプリで使えるのはREQUIRES_NEWしかないように思えたのですが、考え方が間違っていたらどうぞ教えてください。

59 :デフォルトの名無しさん:2009/05/20(水) 18:48:07
>>58
web アプリかどうかかより、「なにをやりたいか」だと思います。
まぁ web アプリだと、やりたいこともある程度偏ってきますが・・・

> 懸念しているのがNOT_SUPPORTEDの場合、「既存のトランザクションを停止し、
> トランザクション外で処理を実行」とありますが、
> InsertやUpdate,Deleteのようにトランザクション外で実行されると困る処理があります。

通販サイト、受注管理などのweb アプリで、画面から受け取った受注登録の情報を書き込むためにトランザクションを開始しているが、
最後に商品の受注を commit する前に、ログテーブルに書き込んでおきたいとする。
受注TBL への insert が失敗するとロールバックするのが普通だが、ログTBLへは commit しておきたい。

またログTBLへの書き込みなんかは、別に失敗してもかまわないので、トランザクション管理しないで(オートコミットで)書き込みたい。
(トランザクション管理しないほうがパフォーマンスがよいし)

こういうときに、LogDao が行うトランザクションは、別トランザクションにし、NOT_SUPPORTED を使ったりします。
んで、LogDao の処理が終わって戻ってくると、トランザクションが開始される。
受注TBLへの commit が失敗すると、業務的なDB更新はロールバックされるけど、ログTBLへの書き込みは行われている。

まぁwebアプリで、業務データの書き込みに使うトランザクションは、REQUIRES_NEW が多いと思います。

60 :デフォルトの名無しさん:2009/05/20(水) 18:50:57
なこたーない。9割方REQUIREDだよ

61 :59:2009/05/20(水) 18:51:19
ちょっとわかりにくい文章がありました。

下から3行目:
誤:んで、LogDao の処理が終わって戻ってくると、トランザクションが開始される。
正:んで、LogDao の処理が終わって戻ってくると、業務データのトランザクションが再開される。

62 :デフォルトの名無しさん:2009/05/20(水) 19:20:00
既存のトランザクションってのを勘違いしてそう。
別スレッドのトランザクションとは独立してるぞ。

63 :デフォルトの名無しさん:2009/05/20(水) 19:29:20
>>62
それは >>59 に対して? それとも >>57 に対して?

64 :56:2009/05/21(木) 11:54:25
>>59
Dion規制中により返信が遅くなりました。
回答ありがとうございます。ようやく使い方を理解することができました。
大きく勘違いしていたのは、>>62 さんも書いているように、
「既存のトランザクション」の考え方でした。
自分の中では、アクションクラスから呼ばれるビジネスロジックのメソッドの開始時点で
トランザクションの開始、ビジネスロジックを抜けるときにトランザクションの終了と
いうパターンのみを考えていました。

実際の使用では、ビジネスロジック内部でさらにDAOクラスごとにPROPAGATIONを使い分けているのですね。
>>59さんのLogDao、NOT_SUPPORTED の使い方の記載はわかりやすく助かりました。

65 :デフォルトの名無しさん:2009/05/21(木) 13:24:17
>>59
サービス系クラスにREQUIREDのトランザクションをかけて、
それらを組み合わせて一つのトランザクションとして使うのが通常だと思う
EJBもデフォルトはREQUIREDだし、たしかSpringもそうだった筈
REQUIRES_NEWを使うのは、すでにトランザクションが開始されていて、
それには参加せずに処理を行いたいが、
その処理に対してもトランザクションを実行したいときとかのみ

66 :59:2009/05/21(木) 16:14:52
>>60 >>65 レスどうもありがとうございます。
指摘を受けて、過去の案件のソースを見直したところ、たいていのサービスクラスには REQUIRED をつけていました。

よって >>59 の↓は訂正します。
> まぁwebアプリで、業務データの書き込みに使うトランザクションは、REQUIRES_NEW が多いと思います。

>>65 さんの説明でほぼ終了していますが、 >>56 さんに誤解のないように説明しておきます。
○web アプリの例として、Struts + Spring とします。
○まず、(他のみなさんはどうかわからないけど)私は tx スキーマ(あるいは @Transactional アノテーション)で
 挙動を制御するのはサービスクラスに対してで、DAO にはつけていません
 # DAO は必ず、とあるサービスクラスから呼び出すこととし、Struts の Action からの直呼出は禁止にする
 # >>59 の例では LogDao は NOT_SUPPORTED にすると説明しましたが、
 # 実際にはそうせずに LogService 経由にし、LogService を NOT_SUPPORTED にしています。
 # 混乱させてすみません

●REQUIRED は、>>56 の TechScore のサイトの通り、以下のようになります。
・すでにトランザクションがあれば、そのトランザクションの中に合流(参加)
・なければ、新たにトランザクションを開始



67 :59:2009/05/21(木) 16:15:27
(続き)

Action からサービス呼出をするときに、サービスには REQUIRED にしておけば、
以下のようにサービスを多段呼びだししても、トランザクションは一つにまとまります。
多段呼び出ししただと、XxxService の中で YuuService を呼び出し、それが返って来て XxxService 内の (3)で
エラーが起きても、(1)、(2)もまとめてロールバックされます。

FooAction
 →XxxService
   (1)
   →YyyService
    (2)
   ←
   (3)
 ←

サービスに REQUIRED_NEW をつけてしまうと、XxxServce から YyyService を呼び出したときの
トランザクションが別になってしまうため、上述のように
XxxService の中で YyyService を呼び出し、それが返って来て XxxService 内の (3)で
エラーが起きた場合、(1)はロールバックされますが、(2)はcommitされてしまっています。

webアプリでこのようなことを明示的にやりたければ REQUIRED_NEW を使いますが、
たいていの場合は、>>60 さんや >>65 さんのいうとおり REQUIRED で事足りると思います。
(長々とすみません)

68 :56:2009/05/21(木) 23:41:35
>>59
> # 実際にはそうせずに LogService 経由にし、LogService を NOT_SUPPORTED にしています。
> # 混乱させてすみません

とんでもないです。
本レベルでしかSpringを用いた実装の経験が無いものですから、
経験者の方の意見とサンプルは非常に助かります。
丁寧なご説明、どうもありがとうございました。

69 :デフォルトの名無しさん:2009/06/18(木) 22:27:18
>>69
  ∧ ∧ 彡
ミ ( ^ω^ )っ 彡
  O ノ タタタタ…
 ミ| (_) 彡
ミ し´ 彡


70 :デフォルトの名無しさん:2009/07/17(金) 02:00:27
Spring について色々調べてるんですがいまいちよく分からない…。

これって結局なんなの?

DI とか抽象的すぎて意味不明だし。

結局これ使うと何が嬉しいの?誰か教えて…。

71 :デフォルトの名無しさん:2009/07/17(金) 08:08:38
DI : 依存性の注入

簡単に言えば、オブジェクト間を疎結合にして、必要な依存は外部から解決してあげようって考え方。

Hoge hoge = new Hoge();


72 :デフォルトの名無しさん:2009/07/17(金) 21:07:13
Hoge hoge = HogeFactroy.getInstance() ;

と思ったのは俺だけではないと思う・・・。

73 :デフォルトの名無しさん:2009/07/17(金) 21:08:02
いや俺だけだな。ファクトローイ

74 :デフォルトの名無しさん:2009/07/17(金) 21:09:34
ファックトロイ!

75 :デフォルトの名無しさん:2009/07/17(金) 21:11:44
>>70
マジレスすると、画面とビジネスロジックとDBアクセスを完全に切り分けて
XMLで稼動するクラスやそのインスタンスが持つ初期値を切り替えましょ
ってとこ。それをいろいろ応用してくとspringの全体像に近づく。

COBOLや昔のVBライクなコーディングするようなプロジェクトには
まず必要ない。てかstruts1.1の提案しか出来ないSIerにも必要ない。

76 :デフォルトの名無しさん:2009/07/17(金) 23:30:08
ところでいまさらなんだが、スレタイから Java 削らないか?
.NET 版も結構枯れてきていい感じだよ。
全然情報なくて悲しくなるけど。

Enterprise Library とか何がうれしいのかさっぱり分からん。

77 :デフォルトの名無しさん:2009/07/18(土) 03:40:01
struts1.3 + spring2.5でdelegatingactionproxyで連携
しようと思っています。
この場合、DIするためにActionクラスにインスタンス変数を
持たなければならないのですが、この変数はスレッドセーフで
動作するのでしょうか?
しないならば、どのような解決策が考えられるでしょうか?
どなたかお知恵のある方、ご解答よろしくお願いします。

78 :デフォルトの名無しさん:2009/07/18(土) 04:05:57
マルチポストはやめなさい

79 :デフォルトの名無しさん:2009/07/18(土) 11:38:32
>Actionクラスにインスタンス変数
おまえはActionクラスとサーブレットの違いをまず学習しろ。話はそれからだ。

80 :デフォルトの名無しさん:2009/07/18(土) 11:43:10
学習が出来たら、以下二つを読んでみろ。
ttp://rutake.ddo.jp/blog/techmemo/2007/07/strutsaction.html
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20070820/279950/

81 :デフォルトの名無しさん:2009/07/18(土) 11:46:51
最後に解答であるが、(ブラウザの文字エンコードに注意しつつ)
ttp://www.jajakarta.org/struts/struts1.2/documentation/ja/target/api/org/apache/struts/action/Action.html
これを読む。

82 :デフォルトの名無しさん:2009/07/18(土) 13:07:26
これは?

ttp://rutake.ddo.jp/blog/techmemo/2008/12/struts2action.html

83 :デフォルトの名無しさん:2009/07/18(土) 14:49:33
>>82
>struts1.3 + spring2.5

strutsの思想が失敗だったのかも知れないが、struts1系を使おうと
するのにActionクラスに変数を持たせようとする設計がどうかしてる。
クラス変数にしなければならない理由もないだろ。一番簡単で陳腐で
よく使われてたのが、abstractをかましてexecuteを実装し、
そこで継承させるactionに共通で利用する変数を引数で渡す方法。
それか同期化する。

84 :デフォルトの名無しさん:2009/07/18(土) 15:25:38
>>77
Spring上でActionクラスをprototypeに宣言した場合、
呼出し毎にインスタンスが作られるから複数スレッドで変数は共有しない
singletonにすると共有してしまう
Springと連携しない場合、基本的にStruts1のActionはスレッドセーフではないから注意

http://static.springsource.org/spring/docs/2.5.x/reference/web-integration.html#struts-delegatingactionproxy

85 :デフォルトの名無しさん:2009/07/18(土) 15:30:47
Springで管理するクラスなんてほとんどの場合がSingletonなんだから、
Actionのフィールドにすることは何ら問題にはならないと思うのだが、
何を騒いでいるのかね?キミたちは。

86 :デフォルトの名無しさん:2009/07/18(土) 15:48:05
>>85
まぁそうなんだけど、prototypeの場合
Actionやサービスクラスをスレッドセーフ意識して作る必要が無くなるから
何か役立つ状況があるかもしれないし、知っておいて損は無い

87 :デフォルトの名無しさん:2009/07/18(土) 16:00:34
>>85
んなアホのひとつ覚えのことはspringやってれば誰でも知ってる

88 :デフォルトの名無しさん:2009/07/18(土) 16:10:33
だから何を騒いでるんだ?って聞いてるんじゃないの?

89 :デフォルトの名無しさん:2009/07/18(土) 17:14:48
騒いでないだろうが。いまごろActionでスレッドセーフ云々とか
言い出す消防がいることに問題があるんだろ。

90 :デフォルトの名無しさん:2009/07/18(土) 17:33:10
どうやら、>>85が自分にアテられたと思っているようだ。
自意識過剰な人だね。

91 :デフォルトの名無しさん:2009/07/18(土) 18:56:45
>>89
Struts1のActionのライフサイクルはSpringで好きに管理できることを
知らずに回答してる人がいることの方が問題な気がする

92 :77:2009/07/19(日) 00:29:25
77です。マルチポストしてすみませんでした。
期日が迫っている作業なのであせっていました。
どうやら変数のスコープをプロトタイプにしたところ
hashCodeが異なる値で取得出来たので問題なさそうです。
ありがとうございました。


93 :デフォルトの名無しさん:2009/07/19(日) 01:45:19
回答もマルチポストという所がワロタ

94 :デフォルトの名無しさん:2009/07/19(日) 23:20:52
77のマルチポストも問題だが、
その程度のメンバー抱えて
Spring使用に走ったアーキテクトは無能だな。

95 :デフォルトの名無しさん:2009/07/21(火) 16:54:38
Spring を使ってみる事にしたんですが、こいつのコネクションプーリング
的なものは使った方がいいんでしょうか?

Struts でも似た様な事ができるんでしょうか?

何かいろんな所で色んな事ができるのでどれでやるのが一番いいのか
分からないんですよね…。

96 :デフォルトの名無しさん:2009/07/21(火) 17:39:17
コンテナが管理するDataSourceをSpringで取得してDIするのが吉。

97 :デフォルトの名無しさん:2009/07/21(火) 18:30:44
>>96
すいません、例えばこういうのを使うという事でしょうか。

<bean id="dsAdapter" class="org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS">
<property name="driver" value="org.postgresql.Driver"/>
<property name="url" value="jdbc:postgresql://xxxxx"/>
<property name="user" value="xxxxx"/>
<property name="password" value="xxxx"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.datasources.SharedPoolDataSource">
<property name="connectionPoolDataSource">
<ref local="dsAdapter"></ref>
</property>
<property name="defaultAutoCommit" value="false"/>
<property name="maxActive" value="5"/>
<property name="maxIdle" value="4"/>
<property name="maxWait" value="10000"/>
</bean>

他のサイトからパクってきたんですが。

例えば、これをあるパッケージ以下のクラスに全て DI したいとすると、
どういう方法がありますか?

98 :デフォルトの名無しさん:2009/07/21(火) 18:46:06
>>97
ちがう。それはSpringで独自にDataSourceを作る方法。
他のサイトをパクる前に、付属のドキュメント見ろよ。
かなりわかりやすい部類だと思うけど。

99 :デフォルトの名無しさん:2009/07/21(火) 19:44:25
>>98
Spring 付属のドキュメントですか?

読んだのですが、あれって DAO を作る事を前提としている
構造ではないんでしょうか?

DAO を作るのとかかったるいので、とりあえずプーリングだけ
してくれればいいと思っていたのですが…。

あっちでもプーリングだけとして使えるのでしょうか?

100 :デフォルトの名無しさん:2009/07/21(火) 20:47:05
あと、ふと思ったんですが Struts の 〜Aware と DI って考え方が
似てますよね。

今 Interceptor で DataSourceAware(自作)としたクラスには
DataSource を注入しようとしているんですが、これって DI なのかな〜
と思いました。

まぁ抽象度は一歩低いのかもしれませんが。

101 :デフォルトの名無しさん:2009/07/21(火) 21:18:21
あんたには無理ぽ

102 :デフォルトの名無しさん:2009/07/21(火) 21:22:48
>>101
まぁとりあえずできました。

Spring で DI しようかと思ったんですが、いちいちデータベース
接続が必要なアクションに XML でごりごり書くのも面倒なので
〜Aware でやった方が楽ですね。型もしっかりしますし。

何かよく分かりませんが DBCP もうまく動いてる様なので
これでやってみます。

103 :デフォルトの名無しさん:2009/07/21(火) 21:37:21
質問と見せかけた荒しか。手が込んでいるなw

104 :デフォルトの名無しさん:2009/07/21(火) 21:42:05
>接続が必要なアクションに XML でごりごり書くのも面倒
>型もしっかりしますし。


・・・ぷ。


まぁ、それで納得してるならいいけど。

105 :デフォルトの名無しさん:2009/07/21(火) 21:52:33
>>104
いや、何か間違っているなら説明をお願いします。
Struts + Spring は初めてなので流儀が分かりません。

無理矢理 DI する事も可能だとは思ったんですが、
全部 Setter 書くなら結局一緒じゃないですか?
むしろ〜Aware でやっておけば XML にごちゃごちゃ
書かずに済む分記述も楽だと思うんですが…。
それじゃ結合がごにょごにょ…という話ですか?

あと、感心したんですが、Interceptor も Spring で生成
できるんですねぇ。Struts も Spring もよくできてますね。
ログインの Interceptor を作ったんですが、こいつに
ゲストの ID とパスワードを DI する事ができました。

106 :デフォルトの名無しさん:2009/07/21(火) 22:18:23
セッターやゲッター手書き?
ide使えば、楽なのに。

spring界隈で使われる"pojo"は理解してる?

107 :デフォルトの名無しさん:2009/07/21(火) 22:26:30
>>106
Eclipse を使ってます。

確かに getter, setter を書くのはまぁやれない事はないですが、
applicationContext.xml なりに全部の Bean に対する記述を
しなければならない訳ですよね?
(仮に全部の Bean で共通して使用する様なオブジェクトが
 あった場合)

Struts の〜Aware でやっておけば、そんな記述はいらない
ですし、その分楽なんではないかと…。

でもそれすると確かに POJO ではなくなってしまいますよね。
でもそれを言い出すと SessionAware とかも使えなくなって
きちゃう訳ですよね。ん?? そう考えると Session の内容を
DI できればいいんですかね。そんな事ってできるんでしょうか?

108 :デフォルトの名無しさん:2009/07/21(火) 22:34:18
@Resourceとか@Serviceとかうまく使えばXMLはほとんどいじる必要ないし、
型がしっかりとか意味不明だし。


109 :デフォルトの名無しさん:2009/07/21(火) 22:36:05
setterも書かなくていいよ。

110 :デフォルトの名無しさん:2009/07/21(火) 22:37:46
こいつホントにドキュメント見たのかよ。

111 :デフォルトの名無しさん:2009/07/21(火) 22:39:41
すいません
「Developing a Spring Framework MVC application step-by-step」
ってやつをざーっとしか呼んでないです。

見直してみます。

112 :デフォルトの名無しさん:2009/07/21(火) 22:40:27
>>107
基本機能を調べもしないで作ってもグチャグチャになるだけだよ
まずはStruts2だけで一通り作ってみたら?
宣言的トランザクション管理やAOP機能が必要ならSpring連携は必須だけど
そういうレベルでもなさそうだし

113 :デフォルトの名無しさん:2009/07/21(火) 22:50:36
>>112
確かにそうなんですが、とりあえず Spring というものを使って
みたかったんです。

基本を学ぶのにいいページとかないでしょうか?

色々見て回ってるんですが、どうも全体像がうまく掴める様な
サイトがないんですよね…。

何となく話を聞いていると Spring って DI じゃなくて結局
トランザクションとか AOP とか DI 以外の何かが便利なん
ですかねぇ。よく分からなくなってきました。

まぁ大した大きさのプロジェクトじゃないのでグチャっても
何とかまとめあげる事はできると思うので続行します…。

114 :デフォルトの名無しさん:2009/07/22(水) 00:11:35
絶対失敗するプロジェクトの見本がキタ━(゚∀゚)━!

115 :デフォルトの名無しさん:2009/07/22(水) 00:15:49
あはは(笑)

大丈夫ですよ。Spring を活かし切れなくても要件は確保できる自信は
あります。

つか、マジで色々調べてるんですがセッションの内容を DI する仕組み
が見つかりません…。そういう事できないんでしょうか?

116 :デフォルトの名無しさん:2009/07/22(水) 00:20:05
sessionスコープでBean定義すればよろし。

117 :デフォルトの名無しさん:2009/07/22(水) 00:26:49
>>116
すみません、もしかしたら同じ事を言っているのかもしれませんが、
Struts の Action だと、request のパラメータは自動的に DI される
と思うのですが、Session の内容は SessionAware にしないと DI され
ないですよね。

それを、Action オブジェクトを Spring 経由で生成する様にした時に
自動的にセッションの内容も DI してくれる様にしたいのですが、
そういう事でしょうか?

session で bean を定義しても、getBean とかで取ってこないといけ
ない訳ですよね?それって Injection になっていない気がするん
ですが、どうなんでしょう…?

118 :デフォルトの名無しさん:2009/07/22(水) 00:30:05
DIすりゃいいだろJK

119 :デフォルトの名無しさん:2009/07/22(水) 00:51:01
>>118
あ、session スコープで定義した bean 自体を DI する、と!!
おおぉ!そういう事ですよね?

何となく分かった気がします!やってみます。
すいません本当に初めてでよく分かってなくて…。ありがとうございます。

これってよく使われる手法なんですか?

120 :デフォルトの名無しさん:2009/07/24(金) 11:02:29
DI にそった形で作ろうとすると、色々考えなきゃいけなくて結局
DI じゃない形で作るより時間かかりますねぇ。

再利用できないコンポーネントなんか意味ないし、かといって
再利用できる様に設計しながら作るとコード量がガンガン増える…。

どっちがいいんだか分からなくなってきました。
一発目は辛いけど二発目からは楽になるんでしょうか。

121 :デフォルトの名無しさん:2009/07/24(金) 12:54:02

> 再利用できる様に設計しながら作るとコード量がガンガン増える…。

え?何言ってるの?
再利用した分で充分に元は取れるだろ


122 :デフォルトの名無しさん:2009/07/24(金) 13:18:29
>>121
例えば、ログインのロジックなんかはそのプロジェクト一回でしか使えない
ですよね。似た様なロジックがその後別のプロジェクトで使えれば、
そこで元は取れると思いますが、単発のプロジェクトで考えた時には
単純にコード量が増えているだけと捉えられませんか?

もちろん、そんなコンポーネントだけではないと思いますが。

123 :デフォルトの名無しさん:2009/07/24(金) 13:46:07
再利用と言っても、同一アプリ内のスコープでしか考えないことにしている。
他のプロジェクトでの再利用はあまり現実的ではない。
DIはモックテストがやりやすい点が便利って程度。
慣れれば設計が大変とは思わないけどねー

124 :デフォルトの名無しさん:2009/07/24(金) 14:55:25
>>122
例が極端すぎる。そんなのあたりまえだ。

再利用が見込めるところだけを再利用可能なコンポーネントとして設計する。
それがきちんと見極めるのが良い設計者だ。


125 :デフォルトの名無しさん:2009/07/24(金) 20:49:32
>>122
・何事もやりすぎはよくない
・できるだけシンプルに考える

これだけでも意識していればいいと思う

126 :デフォルトの名無しさん:2009/07/24(金) 23:21:39
>>123, 124, 125
レスありがとうございます。

逆に、注入する依存性を変化させるだけで再利用できるコンポーネント
ってどんなのがあるんでしょうねぇ?

ちょっと自分には想像できませんでした。
みなさんの実際にやったプロジェクトではどのようなものがありました??

127 :デフォルトの名無しさん:2009/07/25(土) 03:39:52
>DI にそった形で作ろうとすると、色々考えなきゃいけなくて結局
>DI じゃない形で作るより時間かかりますねぇ。
DIで沿った形で作ろうとしてる時点でたぶんもうダメなんじゃないかな。
インターフェースだけきっちり決めて、さくさく作ろうとする時に、
モジュール間をくっつける手段としてDIコンテナ使うだけの話だよ。

普段どういうスタイルで作ってるのよ。

128 :デフォルトの名無しさん:2009/07/25(土) 05:21:43
DIって再利用が主眼なのか? 差し替えを容易にすることで、テスタビリティや拡張性を向上させるのが主な目的と思ってたんだけど。

129 :デフォルトの名無しさん:2009/07/25(土) 12:54:22
>>128
そうそう。

例えば、JDBCやORMapperとか扱う時も、そうだしね。

Spring Frameworkって言っても、どちらかというとframeworkじゃなくて
ミドルウェアみたいな気がする。

130 :デフォルトの名無しさん:2009/07/25(土) 14:16:07
>>127-129
読んでて納得しました。

確かに、差し替えを容易にするって言うのが、メインの考え方かもしれない
ですね。

でもそう考えると Interface で定義して組み立てていくのと何が違うのか…?
という部分でちょっと謎が残るんですが…。

applicationContext.xml さえ再読み込みさせれば Tomcat を再起動しなくて
済むとかそういうメリットでしょうか?(そういう事ができるのかは知りませんが)

131 :デフォルトの名無しさん:2009/07/25(土) 16:45:13
Factoryパターンの発展系やオブジェクトプーリングの側面もあるような気が

132 :デフォルトの名無しさん:2009/07/25(土) 18:43:48
自分的には、DIコンテナはAOPを導入する為に使ってる感が強いな

133 :デフォルトの名無しさん:2009/07/25(土) 19:52:04
>でもそう考えると Interface で定義して組み立てていくのと何が違うのか…?
違わないよ。

今まではベタ書きで組み立てしてたけど、
それをコンテナの仕事にしたってだけの話。

結果として依存性がコードから追い出されたから、
組合せの自由度が増すようになったし、
コンテナの機能でアスペクトを織り込んだり出来るようになった。

134 :デフォルトの名無しさん:2009/07/26(日) 15:36:04
>>130

たとえinterfaceをちゃんと既定してても、自分でnewしてたら無意味。
だから昔はみんなファクトリクラスをがしがし作っていたんだけど、
DIコンテナが台頭してきたから、車輪の再発明をやめて
それを使うようになったってだけ。


135 :デフォルトの名無しさん:2009/07/28(火) 04:27:52
バーチャルモックが出てきてぶっちゃけテスタビリティとかどうでも良くなってきててるよな。

136 :デフォルトの名無しさん:2009/07/28(火) 16:00:54
どうでも良くはなってないだろwww


137 :デフォルトの名無しさん:2009/07/29(水) 09:37:24
C++にもdiコンテナってある?

138 :デフォルトの名無しさん:2009/08/01(土) 15:30:32
あるあるww

139 :デフォルトの名無しさん:2009/08/12(水) 14:17:22
VMwareに買われたな。正直、意味がわからん。

VMwareは何がしたいんだ…?


140 :デフォルトの名無しさん:2009/08/12(水) 19:45:56
マネーゲーム

141 :デフォルトの名無しさん:2009/08/17(月) 11:30:41
>>139
まじ??
ソース、あるいはニュースサイトの記事のURLきぼんぬ

142 :141:2009/08/17(月) 11:33:22
すまん、Guice スレで以下を見つけた

395 名前:デフォルトの名無しさん 投稿日:2009/08/11(火) 21:31:33
SpringSourceが買収されたな
http://journal.mycom.co.jp/news/2009/08/11/015/index.html


143 :デフォルトの名無しさん:2009/08/18(火) 02:11:20
おぉ。今このスレで初めて知った。orz


144 :デフォルトの名無しさん:2009/08/23(日) 08:23:25
リッチクライアントを使った先物取引業務システムを構築
http://itpro.nikkeibp.co.jp/article/JIREI/20090811/335517/
>開発言語はJava,フレームワークはSpring Framework2.5,DBMSはOracle 10gを使用。リッチクライアントのツールには,日本ネクサウェブのNexawebを採用した。

Springって実は結構使われてんだな・・・

145 :デフォルトの名無しさん:2009/08/23(日) 16:56:31
実は、だと?

世間知らずだな


146 :デフォルトの名無しさん:2009/09/28(月) 10:25:49
SpringMVC でサイトを構築しているのですが、commandClass でコマンドのクラス名
を指定すると思いますが、こいつに DI するにはどうしたらいいのでしょうか?

コマンドクラスに DI できないと非常に不便なので何か方法がないかと探している
のですが、どうもできなくて…。

よろしくお願いします。

147 :デフォルトの名無しさん:2009/09/28(月) 11:21:52
すみません。

AbstractCommandController を継承して getCommand をオーバーライドした
クラスを作成する事で対応できました。

お騒がせしました。

148 :デフォルトの名無しさん:2009/10/01(木) 04:39:10
SpringMVCはサンプルプログラムもっと増やして欲しいねえ。
Controllerクラスの解説が希薄に感じる。

149 :デフォルトの名無しさん:2009/11/22(日) 12:53:15
情報も勢いも少なすぎじゃない?
一通り思いつくの用意したから後は自分で調べろスタンスなの?

150 :デフォルトの名無しさん:2009/11/29(日) 02:03:33
日本で使いたければそうするっきゃないね。
なんでこうも流行らないのかな、国内だと。

151 :デフォルトの名無しさん:2009/11/29(日) 09:00:56
日本のプログラマーの多くは上司に進言できる立場にいないから。
または上司がそういったことに興味がないから。

152 :デフォルトの名無しさん:2009/11/29(日) 17:17:53
久々にJavaの仕事に入ったら、未だにオレオレ基盤クラスを継承させてトランザクション管理とかやっていて
軽く眩暈がしたw
なんか数年前から状況は変わってないな。使わないところはいつまでも使わない

153 :デフォルトの名無しさん:2009/11/29(日) 18:10:14
使える人間がいなければ使えない。
そして使えるようになるという努力を怠って停滞している。
それだけだと思う。

154 :デフォルトの名無しさん:2009/11/29(日) 20:15:28
うむ。

155 :デフォルトの名無しさん:2009/11/30(月) 23:23:08
使いたくても使えないこともある。

156 :デフォルトの名無しさん:2009/12/01(火) 19:12:29
上流、下流なんて言ってる時点で日本のプログラマーは死んでるよ


157 :デフォルトの名無しさん:2009/12/01(火) 20:10:04
>>156
概ね同意。

158 :デフォルトの名無しさん:2009/12/01(火) 20:18:05
海外も日本みたいに腐った階層構造なのかな?

159 :デフォルトの名無しさん:2009/12/02(水) 21:11:00
>>158
どこだっていつだって蟹工船 (笑

160 :デフォルトの名無しさん:2009/12/02(水) 23:59:24
階層構造は別に腐っててもいいんだよ。
ただ、死ぬまでしおらしく過労させられるのは日本だけ!

161 :デフォルトの名無しさん:2009/12/03(木) 01:06:32
マ板でやってくれ

162 :デフォルトの名無しさん:2009/12/03(木) 01:35:35
3.0が本リリースされるまではここでもいいだろ。

163 :デフォルトの名無しさん:2009/12/18(金) 00:11:47
3.0リリースされた

164 :デフォルトの名無しさん:2009/12/18(金) 20:08:20
過疎すぎww

165 :デフォルトの名無しさん:2009/12/19(土) 00:08:58
だって価値ないもんww

166 :デフォルトの名無しさん:2009/12/19(土) 02:53:14
>>165
ぷぷっww

167 :デフォルトの名無しさん:2010/01/26(火) 23:19:15
使われなきゃただのリソース潰しさ

168 :デフォルトの名無しさん:2010/02/04(木) 12:13:00
3.0出てから5レスしかないって…

169 :デフォルトの名無しさん:2010/02/04(木) 18:24:58
たぶん俺とお前ともう一人くらいしかこのスレ見てないと思う

170 :デフォルトの名無しさん:2010/02/04(木) 18:52:34
もうひとりって、俺のことか?

171 :デフォルトの名無しさん:2010/02/04(木) 20:36:22
いや俺のことだよたぶん

172 :デフォルトの名無しさん:2010/02/04(木) 22:21:56
俺かな?

173 :デフォルトの名無しさん:2010/02/04(木) 23:08:07
色々見ててここもウォッチしてるけど、guice同様あと一歩踏み込めない

174 :デフォルトの名無しさん:2010/02/05(金) 01:03:19
とりあえず2人よりは多く見てるようだな。

1.2で基本は完成して、2.0で設定ファイル周りが綺麗になって、
以降は蛇足と言うかなんと言うか。
(アノテーション、マジ消えて欲しい。)

3.0 でうれしかったのって O/X Mapper が
spring-ws から本体に移籍した点くらいしか・・

175 :デフォルトの名無しさん:2010/02/05(金) 01:06:50
アンチアノテーションか。珍しいな。
おれはアノテーションがガンガン使われるようになってきてうれしくなってきたくち。

SpringMVCもなかなか良く出来てるし。
Seasar系に近づいただけといわれれば、そういうところもあるけれど。

176 :デフォルトの名無しさん:2010/02/07(日) 16:23:34
Spring ROO ってなんなのよ?

3.0 になって出てきた、よくわからんプロダクトを説明したサイトないですか?

あと、2.0 の時に作ったプログラム、XML ファイルは、jar を 2.5 にしても
動作していましたが、2.5 の時に作ったプログラム等は、jar を 3.0 にしても動くの?

177 :デフォルトの名無しさん:2010/02/07(日) 22:22:36
るー ∩(・ω・)∩

178 :デフォルトの名無しさん:2010/02/07(日) 22:54:22
「向坂 環祭」に参加してきました。
13:40にブキヤブースに颯爽と俺登場!
タマ姉の顔が常に見られるナイスポイントを確保!

京葉線の遅延によりタマ姉の到着が遅れるとのクドイ大人の事情が囁かれるが・・・
タマ姉クラスになるとチャーターヘリが使えるのでメッセ上空からダイブ!しかもToHeart2のコス済み!
司会のKYコール指定を無視し、俺らタカ坊群は「タマ姉!」コールを連呼!
落下地点にてブキヤ社員扮するガクラン部隊の神輿と合体し、ステージの壁をブチ破って時間通りタマ姉登場。
集まったタカ坊群はあっけにとられて場が凍る。
東方厨と思われる学生がタマ姉のコスを見て「タマ姉!歳、歳!」とマナーの悪いツッコミを入れるが、
即座にタマ姉は目の前のブキヤフィギィアを掴み、東方厨に全力投球!東方厨はどこかに運ばれる。
凍った場が一転「タマ姉〜!」で盛り上がるも、投げたフィギィアが
展示物かつ本日紹介予定のこのみ新作であったため、ブキヤo氏は顔面蒼白。

タマ姉はMCの無駄に高い声や一問一答をガン無視し、目の前のフィギィアを下から覗いたり、
剛力キャストオフして楽しんでいた。
(タマ姉はもらったフィギィアを玄関に飾っているらしい)
タマ姉がフィギィアの乳首を吸った所で、タカ坊群の過半数がズボンの中で射精。
Eブロックにイカ臭が充満しグッスマのイベントも中断された。

最後にブキヤがチロルチョコを配るというセコイ真似をしたため、タマ姉が激怒。
タマ姉自ら口内でやっこくしたチョコをタカ坊群にブチまけるという所業に出たため、全員ズボンの中で射精。

阿鼻叫喚のEブロックをタマ姉はチャーターした蘇民神輿で後にした。

この間20分。

179 :デフォルトの名無しさん:2010/03/29(月) 15:04:02
最近Springというかrooに乗り換えた初心者です
エロい人教えてください。(WebApp)

・SpringのContextに管理されているオブジェクトの一覧を出したい
今ひとつコンテナの動作とか自分の設定がよくわからないので、すべてのBeanの情報を出す機能をつけたいが上手くいかない。
ContextLoader.getCurrentWebApplicationContextでWebApplicationContextを取って、
そいつのgetBeanDefinitionNamesでBeanの名前の一覧までは取れますが、スコープやらの定義情報が取れません。
もし取れる方法がありましたら教えてください。

・テストコードの実行の仕方
と言っても単体テストとかじゃなくて・・・
機能を試すときのテストコードを書いてすぐ実行して結果をみたいのですが、
現状はWEBサーバーを起動してテストコード入りのコントローラをブラウザで呼ぶ方法しか分かりません。
もっと簡単にコードの実行が出来る方法があれば教えてください。

180 :デフォルトの名無しさん:2010/03/29(月) 16:59:10
ただでさえ使ってる人が少ないのにそれをさらにエロい人に限定するなんて…

181 :デフォルトの名無しさん:2010/03/30(火) 00:57:13
るー ∩(・ω・)∩

182 :デフォルトの名無しさん:2010/03/30(火) 01:00:04
なるほど、エロゲやってる人に聞きたいってことだったのか

183 :デフォルトの名無しさん:2010/04/01(木) 00:02:30
  _   ,r' )
  \_`ー' Y   _ ,,...,,_
    {*::*}:'::~::::::::::::::":':.、   <Roo-
   /:{@}:::::::::::::/~:::':'::::::::、
   ` 、:_ :::ヽ::;:;:| :::::;;;:::::::::::l
     l /"''l 〕:;;|: :::::::::::;;_}:::l
     |.| //  | |T';_.人 ゙::l
     `";;〈 __| | |   \\
     =ニ二二_,l-'      ヽ.二ニニ==-

こんなスレを覗いてる時点でHENTAIだから恥ずかしがらずに答えてもいいぞ!

184 :デフォルトの名無しさん:2010/04/24(土) 14:27:28
亀レスだけど、おいらもSpringに関してはアンチアノテーションだな。
スキーマの設定が正常かって確認している?

自分はアノテーションだとトランザクションが特定のクラスだけかかっていないとか、
どこで異常が発生しているのかが把握しにくいから、
設定ファイルに戻して、Spring設定ファイル検証ツールを使って確認をしている。
何かいい方法があるなら教えて欲しい。

185 :デフォルトの名無しさん:2010/05/03(月) 14:39:05
@Transactional だけはよくつかうが、
セッターインジェクションする Service の指定だっけ? は使わず、XML で指定する派。

186 :デフォルトの名無しさん:2010/05/03(月) 17:47:35
るー ∩(・ω・)∩

187 :デフォルトの名無しさん:2010/05/04(火) 11:49:01
タマ姉 (向坂 環 こうさか たまき)
http://www.amiami.jp/shop?vgForm=ProductInfo&sku=FIG-MOE-1326&template=review.html

188 :デフォルトの名無しさん:2010/05/04(火) 23:29:53
おっぱいでかすぎ
腹の膨らみも妊娠してるみたいだ

189 :デフォルトの名無しさん:2010/05/04(火) 23:40:05
かわいいぬ

190 :デフォルトの名無しさん:2010/05/05(水) 11:10:02
http://www.dotup.org/uploda/www.dotup.org862005.jpg

191 :デフォルトの名無しさん:2010/05/05(水) 13:27:36
(゜□゜;
てかSpring関係ねええええ。どうしてこうなった・・・Rooのせいか

192 :デフォルトの名無しさん:2010/05/05(水) 14:47:43
そういやth2の18禁版予約して買ったのにいまだやってねーな…

193 :デフォルトの名無しさん:2010/05/22(土) 14:51:03
SpringIDEいれたいんだけどサイトにアクセスできん。。。

194 :デフォルトの名無しさん:2010/06/13(日) 11:38:01
Spring Roo

195 :デフォルトの名無しさん:2010/06/13(日) 12:43:13
るー ∩(・ω・)∩

196 :デフォルトの名無しさん:2010/06/13(日) 14:19:43
るーるー るるるるるーーーーーー

るーるー るるるるるーーーーーー

ああああーーーーーー んんんんんーーーーーー

197 :デフォルトの名無しさん:2010/06/13(日) 22:40:51
rooってscaffoldingが出来るだけ?

198 :デフォルトの名無しさん:2010/06/13(日) 23:34:22
クラス作ったりインターフェース作ったりフィールド増やしたりできるよ









エディタでやるっつーの

199 :デフォルトの名無しさん:2010/06/14(月) 03:02:53
>197
できる
>198
分からないは黙ってろ

200 :デフォルトの名無しさん:2010/06/14(月) 03:15:36
>>199
日本語分からないなら黙ってろよ

> 出来るだけ?
> できる

どんな会話だよw

201 :デフォルトの名無しさん:2010/06/14(月) 18:59:58
るーるるるー
予想通りの展開でワロタwww

202 :デフォルトの名無しさん:2010/06/14(月) 21:57:19
rooooooo--

203 :デフォルトの名無しさん:2010/06/15(火) 01:03:12
るー ∩(・ω・)∩

204 :デフォルトの名無しさん:2010/06/15(火) 01:05:25
(・ω・) < うーは黙ってろ

205 :デフォルトの名無しさん:2010/06/15(火) 11:24:14
Slim3は名称のインパクトで
るー ∩(・ω・)∩に抜かれたなw

206 :デフォルトの名無しさん:2010/06/22(火) 12:22:02
まじめにIDEどこいっちゃったのよ

207 :デフォルトの名無しさん:2010/06/23(水) 21:46:49
STS使ってろ

208 :デフォルトの名無しさん:2010/06/24(木) 00:51:39
国内で使われているのかと不安になる過疎っぷり。

209 :デフォルトの名無しさん:2010/06/24(木) 12:41:55
>207
やだ。
えくりぷすぷらぐいんじゃなきゃやだ。
なんで独自IDEなんかにしてプラグイン単体提供やめたの?馬鹿なの?

210 :デフォルトの名無しさん:2010/06/24(木) 16:18:32
真の意味でSpringIDEになったのだ

211 :デフォルトの名無しさん:2010/06/26(土) 22:38:58
タマ姉、乳ポロ
http://mar.2chan.net/dat/46/src/1277532140827.jpg

212 :デフォルトの名無しさん:2010/07/04(日) 08:47:46
WEBアプリで、Bean に ServletContext を DI するにはどうすればよいのでしょう?

そんなものをDIするのは間違ってる?

213 :デフォルトの名無しさん:2010/07/04(日) 15:59:34
なんでする必要があんの?

214 :デフォルトの名無しさん:2010/07/04(日) 17:13:49
やりたいのは、ServletContext.getRealPath() で得られるパスを Bean に教えてあげたいってことなんす。


215 :デフォルトの名無しさん:2010/07/04(日) 17:59:43
org.springframework.web.context.ServletContextAwareをimplements

216 :デフォルトの名無しさん:2010/07/05(月) 05:22:28
感謝!解決しますたー

217 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 16:37:20
引数で渡せなかったのか?

218 :デフォルトの名無しさん:2010/08/01(日) 20:01:51
springってバージョン何が一般的に使われていますか?
あと、プレゼンテーション層はSpring MVCがよく使われますか?

219 :デフォルトの名無しさん:2010/08/01(日) 20:29:20
Spring MVC はウンコ

とだけ申し上げたい。

220 :デフォルトの名無しさん:2010/08/01(日) 20:29:47
るー ∩(・ω・)∩

221 :デフォルトの名無しさん:2010/08/01(日) 23:36:20
MVC運子なのか。
やっぱstruts2ですかね。

Rooは、aspect専用のファイルが作られるのが、
なんか好きになれない。。

222 :デフォルトの名無しさん:2010/08/01(日) 23:52:47
あそこまでAspectJ使われると採用しにくいよね・・・

223 :デフォルトの名無しさん:2010/08/02(月) 17:15:03
てす

67 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)