【DI】Java Spring Frameworkを語るスレ 4.0
1 :
目黒クラスタ ◆0anDvOSTbk :
2008/11/21(金) 00:49:36
2 :
デフォルトの名無しさん :2008/11/21(金) 01:11:55
4 :
続き :2008/11/21(金) 01:18:23
5 :
デフォルトの名無しさん :2008/11/21(金) 01:37:01
6 :
デフォルトの名無しさん :2008/11/21(金) 08:40:39
staticフィールドに対してAutoWiringする標準的な方法って何かありますか? ユーティリティクラス内で使う設定をSpring管理にしたいのですが・・・。 一応、インスタンスメソッドとしてsetter用意すればされるようなのですが、その他に何かやり方があれば教えてください。
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>
もしかしてもう誰も使ってないの? 誰かなんか語ろうぜ・・・。
まあ、普通に使っている人にしてみれば、今更特に語ることもないからな〜
これだけレスつかないってことは誰もSpring使ってないんじゃないかと妄想。
>>14 これから使う予定です
軽く本で勉強したいのですが、お勧めの書籍などありましたら、教えてください
うんこ
とある魔術の禁書目録<インデックス> 舞台は総人口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 を使うとき、みなさんどうしてますか?
参考にならないと思うけど、最近うちで作ったシステムの話。 春先から作りはじめて10月から稼働を始めた3000javaなシステム。 Spring 2.5でアノテーションを使っているので、 applicationContext.xmlはSpring IDEも使わず手書き。 詳細は以下。 規模はアプリケーションレイヤのみで2500(700は自動生成)、 フレームワークレイヤは500。 そのうち、Springで管理するコンポーネント数300チョイ。 アクション:50(ユースケース単位) ロジック:90 データアクセス:140 はアノテーションベースで管理。 applicationContext.xmlに手書きしているのは25(一番多いのはDWR用)。
/ // / // ______ / // / / // /| 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:松岡修造)
>>22 クソスレじゃないです!
荒らすのやめてください!!
2.5の和書がない件について
164の友人ではないが(たぶん)、転勤で熱田区から新宿区に今年転居した。 東京都心部は、名古屋駅〜金山〜今池ぐらいの鉄道状況が名古屋市内全域に整備された感じ。
26 :
デフォルトの名無しさん :2008/12/21(日) 12:19:03
EJBがあるからもうspringイラネ
外人が日本人を特別視してるってのは、自分の国の歴史少しでも知ってたら誰でも分かるだろ。 まず、資源が全くないってことはすごいこと。もう両手両足もがれたぐらいのハンデ。 しかもすごいのは、米国の3分の1の人口、わずか25分の1の領土で、 その上ただでさえ極小の国土の7割が山、山、山。なーんにもない、山・・・。 だから農業で輸出して食べていくことすらできない。条件からして最貧国でもおかしくない国。 そんな国が、100年ほど前で当時世界最強クラスだった露助とか清をあっさり倒して、 非白人国家で普通に白人常任倶楽部仲間入りしちゃってて、おまけに米国敵に回して ガチで戦争して、世界で唯一米国本土爆撃して、英国の無敵艦隊フルボッコにして、 オランダ倒して、世界で唯一原爆落とさせるほどてこずらせて。しかも二発だよ。二発。考えられない。 敗戦とか言ってるけど日本のせいでアジアから白人の植民地全部消されたし。 しかも信じられないのは、戦争に負けてただでさえ何にもない国がさらにインフラまで全部叩き潰されて、 多額の賠償金まで背負わせて100%再起不能にしといた極貧衰弱国家で、 今度こそ生意気なイエローモンキーJAPが消えて数百年はウザイ顔見ないで済むと思ってたら、 直ちに再び白人社会に経済で参戦して来くさって、参戦どころかごぼう抜きでたった2,30年であっという間に米国さえ抜いて世界第一位。 東京の土地だけで米国全土が買えるほどの呆れた価値になっちゃう程の超絶経済力で世界中( ゜Д゜)ポカーン・・・状態。 その後もずーっと二位維持。頭一本でそれ。 しかも経済の80%が内需。内需だけでそれ。 金融とかでまだ全然進出してないし車や家電、工業製品ももまだまだ進出しきってなくてそれ。 もうキチガイの域。伸びしろありすぎワロタ。戦後60年一発も打たずに侵略せずにこれ。 何気に世界最長寿国とかなってる。んで今度は漫画・アニメ・ゲーム。気がつけばハリウッドの規模とっくに超えてる。 アメリカの検索で一位になってるのが日本のアニメとか。世界中で一番人気の映像作品が日本のアニメとか。 極めつけは世界一長い国号、2000年のどの白人より長い王室ならぬ、その上の皇室保有。エンペラーに代表される歴史。 普通の神経してたらこんな国怖くて関わりたくないわな。
29 :
デフォルトの名無しさん :2009/02/03(火) 00:00:05
30 :
デフォルトの名無しさん :2009/02/05(木) 17:42:09
Spring の jar をダウンロードするために、
ひさしぶりに
http://www.springframework.org にいったが、
downloads ページに行ったら、community の方でも、メアド登録が必要になってた。
なんかめんどくさくなったなぁ。
どうしてもいやなひとは、maven のリポジトリ等から直接落とせるけど。
「やべぇ…なにこれ。マジでパネェ…。」 思わず立ちすくみ息を飲んだ。 目の前にはドロハンに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
あるある
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利用を体験されている方がいれば、お話を伺いたいです。
そもそもどうしてそのアプリでDIコンテナを使おうと思ったのかね? それを考えると有用かどうかは解るんじゃないの?
40 :
デフォルトの名無しさん :2009/05/05(火) 06:14:45
返信ありがとうございます。 まず、作成しようとしているアプリは、対象サーバから情報を取得し、 その情報を加工して出力するアプリです。 現段階で、出力方法を一種類に決定できないため、 DIを利用し、後で出力用クラスを入れ替え可能にしておくと、 アーキテクチャとして綺麗になるかなと考えていました。 ただ、DIを使うまでもなく個別にコンパイルしてもよいため、 出力用クラスの入れ替え以外にも、単体テストが行いやすいなど、 スタンドアロンアプリでのDI利用の大きなメリットが存在すれば 利用してみたいと思い、質問していました。
>>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への依存さえコード上には存在しなくなる。 サーバー側だけじゃなくて、拡張性持たせるクライアントアプリとかにも良さそう。
むしろクライアントアプリの方が活きる
48 :
デフォルトの名無しさん :2009/05/17(日) 22:01:50
Eclipse って、もうすでに、中で OSGi(Equinox) が動いているんだっけ?
50 :
デフォルトの名無しさん :2009/05/17(日) 22:36:12
>>48 3からはOSGiベースだよね。要するにOSGiバンドルの集合体=Eclipse 3.x。
ただ元々OSGiじゃないプラグインシステムを置き換えたから、
独自仕様とOSGiの部分が混在してる。
ServiceMix Kernelは4からFelix(OSGi実装)+SpringDMでやってたっけ。
ドキュメントが少なくてまだよく分かってない部分も多いけど、
あの方向性は興味ある。
いまだに俺はOSGiがなんの役に立つか分からないし、実現される気がしない。なんだあれ? 心の中で「オスギ」と読んでるのは俺だけでいい。
52 :
デフォルトの名無しさん :2009/05/17(日) 22:41:51
>>51 元々モバイル用とも想定してたから動的にモジュールのロード云々とか
言われるけど、それよりもJava 7で入れるのどうのこうの言われてる
スーパーパッケージみたいな概念の方がより意味がある。
どのパッケージを外部に公開するか、どの外部パッケージの
バージョンいくつをインポートしろとかをメタデータに記述出来るので
例えばJAX-B 2.1と2.0を同じランタイム上で混在させたり出来る。
Eclipseが採用したのもたぶんその辺りがプラグインアーキテクチャ向けだったからだろうね。
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
>56 書いてあるとおりだが、何がわからない?
58 :
56 :2009/05/20(水) 13:19:53
>57 懸念しているのがNOT_SUPPORTEDの場合、「既存のトランザクションを停止し、 トランザクション外で処理を実行」とありますが、 InsertやUpdate,Deleteのようにトランザクション外で実行されると困る処理があります。 また、REQUIREDの場合、「既存のトランザクション内で処理を実行」とありますが、 既存のトランザクション内で処理を実行してしまうと、どちらか片方で処理でロールバックが発生した場合には 両方ともロールバックされますよね? 結果的にWebアプリで使えるのはREQUIRES_NEWしかないように思えたのですが、考え方が間違っていたらどうぞ教えてください。
>>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 が多いと思います。
なこたーない。9割方REQUIREDだよ
61 :
59 :2009/05/20(水) 18:51:19
ちょっとわかりにくい文章がありました。 下から3行目: 誤:んで、LogDao の処理が終わって戻ってくると、トランザクションが開始される。 正:んで、LogDao の処理が終わって戻ってくると、業務データのトランザクションが再開される。
既存のトランザクションってのを勘違いしてそう。 別スレッドのトランザクションとは独立してるぞ。
64 :
56 :2009/05/21(木) 11:54:25
>>59 Dion規制中により返信が遅くなりました。
回答ありがとうございます。ようやく使い方を理解することができました。
大きく勘違いしていたのは、
>>62 さんも書いているように、
「既存のトランザクション」の考え方でした。
自分の中では、アクションクラスから呼ばれるビジネスロジックのメソッドの開始時点で
トランザクションの開始、ビジネスロジックを抜けるときにトランザクションの終了と
いうパターンのみを考えていました。
実際の使用では、ビジネスロジック内部でさらにDAOクラスごとにPROPAGATIONを使い分けているのですね。
>>59 さんのLogDao、NOT_SUPPORTED の使い方の記載はわかりやすく助かりました。
>>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 ノ タタタタ…
ミ| (_) 彡
ミ し´ 彡
Spring について色々調べてるんですがいまいちよく分からない…。 これって結局なんなの? DI とか抽象的すぎて意味不明だし。 結局これ使うと何が嬉しいの?誰か教えて…。
DI : 依存性の注入 簡単に言えば、オブジェクト間を疎結合にして、必要な依存は外部から解決してあげようって考え方。 Hoge hoge = new Hoge();
Hoge hoge = HogeFactroy.getInstance() ; と思ったのは俺だけではないと思う・・・。
いや俺だけだな。ファクトローイ
ファックトロイ!
>>70 マジレスすると、画面とビジネスロジックとDBアクセスを完全に切り分けて
XMLで稼動するクラスやそのインスタンスが持つ初期値を切り替えましょ
ってとこ。それをいろいろ応用してくとspringの全体像に近づく。
COBOLや昔のVBライクなコーディングするようなプロジェクトには
まず必要ない。てかstruts1.1の提案しか出来ないSIerにも必要ない。
ところでいまさらなんだが、スレタイから Java 削らないか? .NET 版も結構枯れてきていい感じだよ。 全然情報なくて悲しくなるけど。 Enterprise Library とか何がうれしいのかさっぱり分からん。
struts1.3 + spring2.5でdelegatingactionproxyで連携 しようと思っています。 この場合、DIするためにActionクラスにインスタンス変数を 持たなければならないのですが、この変数はスレッドセーフで 動作するのでしょうか? しないならば、どのような解決策が考えられるでしょうか? どなたかお知恵のある方、ご解答よろしくお願いします。
マルチポストはやめなさい
>Actionクラスにインスタンス変数 おまえはActionクラスとサーブレットの違いをまず学習しろ。話はそれからだ。
>>82 >struts1.3 + spring2.5
strutsの思想が失敗だったのかも知れないが、struts1系を使おうと
するのにActionクラスに変数を持たせようとする設計がどうかしてる。
クラス変数にしなければならない理由もないだろ。一番簡単で陳腐で
よく使われてたのが、abstractをかましてexecuteを実装し、
そこで継承させるactionに共通で利用する変数を引数で渡す方法。
それか同期化する。
Springで管理するクラスなんてほとんどの場合がSingletonなんだから、 Actionのフィールドにすることは何ら問題にはならないと思うのだが、 何を騒いでいるのかね?キミたちは。
>>85 まぁそうなんだけど、prototypeの場合
Actionやサービスクラスをスレッドセーフ意識して作る必要が無くなるから
何か役立つ状況があるかもしれないし、知っておいて損は無い
>>85 んなアホのひとつ覚えのことはspringやってれば誰でも知ってる
だから何を騒いでるんだ?って聞いてるんじゃないの?
騒いでないだろうが。いまごろActionでスレッドセーフ云々とか 言い出す消防がいることに問題があるんだろ。
どうやら、
>>85 が自分にアテられたと思っているようだ。
自意識過剰な人だね。
>>89 Struts1のActionのライフサイクルはSpringで好きに管理できることを
知らずに回答してる人がいることの方が問題な気がする
92 :
77 :2009/07/19(日) 00:29:25
77です。マルチポストしてすみませんでした。 期日が迫っている作業なのであせっていました。 どうやら変数のスコープをプロトタイプにしたところ hashCodeが異なる値で取得出来たので問題なさそうです。 ありがとうございました。
回答もマルチポストという所がワロタ
77のマルチポストも問題だが、 その程度のメンバー抱えて Spring使用に走ったアーキテクトは無能だな。
Spring を使ってみる事にしたんですが、こいつのコネクションプーリング 的なものは使った方がいいんでしょうか? Struts でも似た様な事ができるんでしょうか? 何かいろんな所で色んな事ができるのでどれでやるのが一番いいのか 分からないんですよね…。
コンテナが管理するDataSourceをSpringで取得してDIするのが吉。
>>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 したいとすると、
どういう方法がありますか?
>>97 ちがう。それはSpringで独自にDataSourceを作る方法。
他のサイトをパクる前に、付属のドキュメント見ろよ。
かなりわかりやすい部類だと思うけど。
>>98 Spring 付属のドキュメントですか?
読んだのですが、あれって DAO を作る事を前提としている
構造ではないんでしょうか?
DAO を作るのとかかったるいので、とりあえずプーリングだけ
してくれればいいと思っていたのですが…。
あっちでもプーリングだけとして使えるのでしょうか?
あと、ふと思ったんですが Struts の 〜Aware と DI って考え方が 似てますよね。 今 Interceptor で DataSourceAware(自作)としたクラスには DataSource を注入しようとしているんですが、これって DI なのかな〜 と思いました。 まぁ抽象度は一歩低いのかもしれませんが。
あんたには無理ぽ
>>101 まぁとりあえずできました。
Spring で DI しようかと思ったんですが、いちいちデータベース
接続が必要なアクションに XML でごりごり書くのも面倒なので
〜Aware でやった方が楽ですね。型もしっかりしますし。
何かよく分かりませんが DBCP もうまく動いてる様なので
これでやってみます。
質問と見せかけた荒しか。手が込んでいるなw
>接続が必要なアクションに XML でごりごり書くのも面倒 >型もしっかりしますし。 ・・・ぷ。 まぁ、それで納得してるならいいけど。
>>104 いや、何か間違っているなら説明をお願いします。
Struts + Spring は初めてなので流儀が分かりません。
無理矢理 DI する事も可能だとは思ったんですが、
全部 Setter 書くなら結局一緒じゃないですか?
むしろ〜Aware でやっておけば XML にごちゃごちゃ
書かずに済む分記述も楽だと思うんですが…。
それじゃ結合がごにょごにょ…という話ですか?
あと、感心したんですが、Interceptor も Spring で生成
できるんですねぇ。Struts も Spring もよくできてますね。
ログインの Interceptor を作ったんですが、こいつに
ゲストの ID とパスワードを DI する事ができました。
セッターやゲッター手書き? ide使えば、楽なのに。 spring界隈で使われる"pojo"は理解してる?
>>106 Eclipse を使ってます。
確かに getter, setter を書くのはまぁやれない事はないですが、
applicationContext.xml なりに全部の Bean に対する記述を
しなければならない訳ですよね?
(仮に全部の Bean で共通して使用する様なオブジェクトが
あった場合)
Struts の〜Aware でやっておけば、そんな記述はいらない
ですし、その分楽なんではないかと…。
でもそれすると確かに POJO ではなくなってしまいますよね。
でもそれを言い出すと SessionAware とかも使えなくなって
きちゃう訳ですよね。ん?? そう考えると Session の内容を
DI できればいいんですかね。そんな事ってできるんでしょうか?
@Resourceとか@Serviceとかうまく使えばXMLはほとんどいじる必要ないし、 型がしっかりとか意味不明だし。
setterも書かなくていいよ。
こいつホントにドキュメント見たのかよ。
すいません 「Developing a Spring Framework MVC application step-by-step」 ってやつをざーっとしか呼んでないです。 見直してみます。
>>107 基本機能を調べもしないで作ってもグチャグチャになるだけだよ
まずはStruts2だけで一通り作ってみたら?
宣言的トランザクション管理やAOP機能が必要ならSpring連携は必須だけど
そういうレベルでもなさそうだし
>>112 確かにそうなんですが、とりあえず Spring というものを使って
みたかったんです。
基本を学ぶのにいいページとかないでしょうか?
色々見て回ってるんですが、どうも全体像がうまく掴める様な
サイトがないんですよね…。
何となく話を聞いていると Spring って DI じゃなくて結局
トランザクションとか AOP とか DI 以外の何かが便利なん
ですかねぇ。よく分からなくなってきました。
まぁ大した大きさのプロジェクトじゃないのでグチャっても
何とかまとめあげる事はできると思うので続行します…。
絶対失敗するプロジェクトの見本がキタ━(゚∀゚)━!
あはは(笑) 大丈夫ですよ。Spring を活かし切れなくても要件は確保できる自信は あります。 つか、マジで色々調べてるんですがセッションの内容を DI する仕組み が見つかりません…。そういう事できないんでしょうか?
sessionスコープでBean定義すればよろし。
>>116 すみません、もしかしたら同じ事を言っているのかもしれませんが、
Struts の Action だと、request のパラメータは自動的に DI される
と思うのですが、Session の内容は SessionAware にしないと DI され
ないですよね。
それを、Action オブジェクトを Spring 経由で生成する様にした時に
自動的にセッションの内容も DI してくれる様にしたいのですが、
そういう事でしょうか?
session で bean を定義しても、getBean とかで取ってこないといけ
ない訳ですよね?それって Injection になっていない気がするん
ですが、どうなんでしょう…?
DIすりゃいいだろJK
>>118 あ、session スコープで定義した bean 自体を DI する、と!!
おおぉ!そういう事ですよね?
何となく分かった気がします!やってみます。
すいません本当に初めてでよく分かってなくて…。ありがとうございます。
これってよく使われる手法なんですか?
DI にそった形で作ろうとすると、色々考えなきゃいけなくて結局 DI じゃない形で作るより時間かかりますねぇ。 再利用できないコンポーネントなんか意味ないし、かといって 再利用できる様に設計しながら作るとコード量がガンガン増える…。 どっちがいいんだか分からなくなってきました。 一発目は辛いけど二発目からは楽になるんでしょうか。
> 再利用できる様に設計しながら作るとコード量がガンガン増える…。 え?何言ってるの? 再利用した分で充分に元は取れるだろ
>>121 例えば、ログインのロジックなんかはそのプロジェクト一回でしか使えない
ですよね。似た様なロジックがその後別のプロジェクトで使えれば、
そこで元は取れると思いますが、単発のプロジェクトで考えた時には
単純にコード量が増えているだけと捉えられませんか?
もちろん、そんなコンポーネントだけではないと思いますが。
再利用と言っても、同一アプリ内のスコープでしか考えないことにしている。 他のプロジェクトでの再利用はあまり現実的ではない。 DIはモックテストがやりやすい点が便利って程度。 慣れれば設計が大変とは思わないけどねー
>>122 例が極端すぎる。そんなのあたりまえだ。
再利用が見込めるところだけを再利用可能なコンポーネントとして設計する。
それがきちんと見極めるのが良い設計者だ。
>>122 ・何事もやりすぎはよくない
・できるだけシンプルに考える
これだけでも意識していればいいと思う
>>123 , 124, 125
レスありがとうございます。
逆に、注入する依存性を変化させるだけで再利用できるコンポーネント
ってどんなのがあるんでしょうねぇ?
ちょっと自分には想像できませんでした。
みなさんの実際にやったプロジェクトではどのようなものがありました??
>DI にそった形で作ろうとすると、色々考えなきゃいけなくて結局 >DI じゃない形で作るより時間かかりますねぇ。 DIで沿った形で作ろうとしてる時点でたぶんもうダメなんじゃないかな。 インターフェースだけきっちり決めて、さくさく作ろうとする時に、 モジュール間をくっつける手段としてDIコンテナ使うだけの話だよ。 普段どういうスタイルで作ってるのよ。
DIって再利用が主眼なのか? 差し替えを容易にすることで、テスタビリティや拡張性を向上させるのが主な目的と思ってたんだけど。
>>128 そうそう。
例えば、JDBCやORMapperとか扱う時も、そうだしね。
Spring Frameworkって言っても、どちらかというとframeworkじゃなくて
ミドルウェアみたいな気がする。
>>127-129 読んでて納得しました。
確かに、差し替えを容易にするって言うのが、メインの考え方かもしれない
ですね。
でもそう考えると Interface で定義して組み立てていくのと何が違うのか…?
という部分でちょっと謎が残るんですが…。
applicationContext.xml さえ再読み込みさせれば Tomcat を再起動しなくて
済むとかそういうメリットでしょうか?(そういう事ができるのかは知りませんが)
Factoryパターンの発展系やオブジェクトプーリングの側面もあるような気が
自分的には、DIコンテナはAOPを導入する為に使ってる感が強いな
>でもそう考えると Interface で定義して組み立てていくのと何が違うのか…? 違わないよ。 今まではベタ書きで組み立てしてたけど、 それをコンテナの仕事にしたってだけの話。 結果として依存性がコードから追い出されたから、 組合せの自由度が増すようになったし、 コンテナの機能でアスペクトを織り込んだり出来るようになった。
>>130 たとえinterfaceをちゃんと既定してても、自分でnewしてたら無意味。
だから昔はみんなファクトリクラスをがしがし作っていたんだけど、
DIコンテナが台頭してきたから、車輪の再発明をやめて
それを使うようになったってだけ。
バーチャルモックが出てきてぶっちゃけテスタビリティとかどうでも良くなってきててるよな。
どうでも良くはなってないだろwww
C++にもdiコンテナってある?
あるあるww
VMwareに買われたな。正直、意味がわからん。 VMwareは何がしたいんだ…?
マネーゲーム
>>139 まじ??
ソース、あるいはニュースサイトの記事のURLきぼんぬ
142 :
141 :2009/08/17(月) 11:33:22
おぉ。今このスレで初めて知った。orz
実は、だと? 世間知らずだな
146 :
デフォルトの名無しさん :2009/09/28(月) 10:25:49
SpringMVC でサイトを構築しているのですが、commandClass でコマンドのクラス名 を指定すると思いますが、こいつに DI するにはどうしたらいいのでしょうか? コマンドクラスに DI できないと非常に不便なので何か方法がないかと探している のですが、どうもできなくて…。 よろしくお願いします。
すみません。 AbstractCommandController を継承して getCommand をオーバーライドした クラスを作成する事で対応できました。 お騒がせしました。
SpringMVCはサンプルプログラムもっと増やして欲しいねえ。 Controllerクラスの解説が希薄に感じる。
情報も勢いも少なすぎじゃない? 一通り思いつくの用意したから後は自分で調べろスタンスなの?
日本で使いたければそうするっきゃないね。 なんでこうも流行らないのかな、国内だと。
日本のプログラマーの多くは上司に進言できる立場にいないから。 または上司がそういったことに興味がないから。
久々にJavaの仕事に入ったら、未だにオレオレ基盤クラスを継承させてトランザクション管理とかやっていて 軽く眩暈がしたw なんか数年前から状況は変わってないな。使わないところはいつまでも使わない
使える人間がいなければ使えない。 そして使えるようになるという努力を怠って停滞している。 それだけだと思う。
うむ。
使いたくても使えないこともある。
上流、下流なんて言ってる時点で日本のプログラマーは死んでるよ
海外も日本みたいに腐った階層構造なのかな?
階層構造は別に腐っててもいいんだよ。 ただ、死ぬまでしおらしく過労させられるのは日本だけ!
マ板でやってくれ
3.0が本リリースされるまではここでもいいだろ。
3.0リリースされた
過疎すぎww
だって価値ないもんww
使われなきゃただのリソース潰しさ
3.0出てから5レスしかないって…
たぶん俺とお前ともう一人くらいしかこのスレ見てないと思う
もうひとりって、俺のことか?
いや俺のことだよたぶん
俺かな?
色々見ててここもウォッチしてるけど、guice同様あと一歩踏み込めない
とりあえず2人よりは多く見てるようだな。 1.2で基本は完成して、2.0で設定ファイル周りが綺麗になって、 以降は蛇足と言うかなんと言うか。 (アノテーション、マジ消えて欲しい。) 3.0 でうれしかったのって O/X Mapper が spring-ws から本体に移籍した点くらいしか・・
アンチアノテーションか。珍しいな。 おれはアノテーションがガンガン使われるようになってきてうれしくなってきたくち。 SpringMVCもなかなか良く出来てるし。 Seasar系に近づいただけといわれれば、そういうところもあるけれど。
Spring ROO ってなんなのよ? 3.0 になって出てきた、よくわからんプロダクトを説明したサイトないですか? あと、2.0 の時に作ったプログラム、XML ファイルは、jar を 2.5 にしても 動作していましたが、2.5 の時に作ったプログラム等は、jar を 3.0 にしても動くの?
るー ∩(・ω・)∩
あぼーん
179 :
デフォルトの名無しさん :2010/03/29(月) 15:04:02
最近Springというかrooに乗り換えた初心者です エロい人教えてください。(WebApp) ・SpringのContextに管理されているオブジェクトの一覧を出したい 今ひとつコンテナの動作とか自分の設定がよくわからないので、すべてのBeanの情報を出す機能をつけたいが上手くいかない。 ContextLoader.getCurrentWebApplicationContextでWebApplicationContextを取って、 そいつのgetBeanDefinitionNamesでBeanの名前の一覧までは取れますが、スコープやらの定義情報が取れません。 もし取れる方法がありましたら教えてください。 ・テストコードの実行の仕方 と言っても単体テストとかじゃなくて・・・ 機能を試すときのテストコードを書いてすぐ実行して結果をみたいのですが、 現状はWEBサーバーを起動してテストコード入りのコントローラをブラウザで呼ぶ方法しか分かりません。 もっと簡単にコードの実行が出来る方法があれば教えてください。
ただでさえ使ってる人が少ないのにそれをさらにエロい人に限定するなんて…
るー ∩(・ω・)∩
なるほど、エロゲやってる人に聞きたいってことだったのか
_ ,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 で指定する派。
るー ∩(・ω・)∩
おっぱいでかすぎ 腹の膨らみも妊娠してるみたいだ
かわいいぬ
(゜□゜; てかSpring関係ねええええ。どうしてこうなった・・・Rooのせいか
そういやth2の18禁版予約して買ったのにいまだやってねーな…
193 :
デフォルトの名無しさん :2010/05/22(土) 14:51:03
SpringIDEいれたいんだけどサイトにアクセスできん。。。
Spring Roo
るー ∩(・ω・)∩
るーるー るるるるるーーーーーー るーるー るるるるるーーーーーー ああああーーーーーー んんんんんーーーーーー
rooってscaffoldingが出来るだけ?
クラス作ったりインターフェース作ったりフィールド増やしたりできるよ エディタでやるっつーの
>197 できる >198 分からないは黙ってろ
>>199 日本語分からないなら黙ってろよ
> 出来るだけ?
> できる
どんな会話だよw
るーるるるー 予想通りの展開でワロタwww
rooooooo--
るー ∩(・ω・)∩
(・ω・) < うーは黙ってろ
Slim3は名称のインパクトで るー ∩(・ω・)∩に抜かれたなw
206 :
デフォルトの名無しさん :2010/06/22(火) 12:22:02
まじめにIDEどこいっちゃったのよ
STS使ってろ
国内で使われているのかと不安になる過疎っぷり。
209 :
デフォルトの名無しさん :2010/06/24(木) 12:41:55
>207 やだ。 えくりぷすぷらぐいんじゃなきゃやだ。 なんで独自IDEなんかにしてプラグイン単体提供やめたの?馬鹿なの?
真の意味でSpringIDEになったのだ
212 :
デフォルトの名無しさん :2010/07/04(日) 08:47:46
WEBアプリで、Bean に ServletContext を DI するにはどうすればよいのでしょう? そんなものをDIするのは間違ってる?
なんでする必要があんの?
やりたいのは、ServletContext.getRealPath() で得られるパスを Bean に教えてあげたいってことなんす。
org.springframework.web.context.ServletContextAwareをimplements
感謝!解決しますたー
引数で渡せなかったのか?
springってバージョン何が一般的に使われていますか? あと、プレゼンテーション層はSpring MVCがよく使われますか?
Spring MVC はウンコ とだけ申し上げたい。
るー ∩(・ω・)∩
MVC運子なのか。 やっぱstruts2ですかね。 Rooは、aspect専用のファイルが作られるのが、 なんか好きになれない。。
あそこまでAspectJ使われると採用しにくいよね・・・
223 :
デフォルトの名無しさん :2010/08/02(月) 17:15:03
てす
google app engineでspring-wsって動く?
yes
226 :
デフォルトの名無しさん :2010/08/28(土) 23:05:37
@Transactionalでトランザクション管理するときに、RDB内に置かない外部のリソースも 含めてトランザクション管理することは可能? 例えば、ユーザにファイルをうpさせた時に、メタデータはRDBに置いてファイル自体は ファイルシステムに格納するとして、両者を一単位としてトランザクションを設定したいんだけど。
XAに対応したトランザクショナルなファイルシステムがあれば可能 聞いたことないけど
228 :
デフォルトの名無しさん :2010/08/29(日) 00:42:31
>>227 orz
なんか、SpringのTransactionManagerがrollbackを呼び出す時に、
それをフックしたりできないもんだろうか。
要するに、カスタムのトランザクションを定義できないかということなんだけど。
>>228 その程度でいいならTransactionSynchronizationの実装クラスを作ればおk
231 :
デフォルトの名無しさん :2010/10/21(木) 13:43:30
多少スレ違いかも知れないが、ネタふりにならないネタふり。
Apache、JSR 299とJSR 300のオープン実装「OpenWebBeans」正式版をリリース
http://sourceforge.jp/magazine/10/10/21/0412230 WebBeans って JBoss が推進していたやつだよね?
こんなのがいまさら出てきたところで、結局は DI は Spring を使うような気がする。
というか Java での開発自身が、ほとんど話題にならないような。
JSR自体がほとんど有名無実化してるしなぁ。
DIとか依存性とかそういうことちゃんと理解できてる人が少ないよね そもそもテストクラスをかかずに動かしてみてテストするレベルのテストしか 実施しないようなところだと、たいした恩恵ないもんね(´・ω・`)
Spring3 日本語ドキュメント、もしくは日本語の書籍キボンヌ。。
お前が書いてもいいのよ?
じゃあ、俺が。
どうぞどうぞ
おとなしくS2使うことにしますた。
選べる立場に居てS2選ぶやつはいねーよ
>>240 どういういみ?
Springよりも、断然S2じゃないの?
そんなやつこのスレにはいねーよ
Springってバージョンなにがおすすめ? あと、プレゼンテーションは何を使えばいい? ほんで、DB層は名に使えばいい?
バージョンはよほどの理由がない限り最新版がお勧め。 プレゼンテーション層は俺なら SpirngMVC + Velocity にするけど Struts + JSP でも別にかまわん。 DAO層はJDBC抽象が強力なので俺なら自前のヘルパーと組み合わせるが HibernateでもiBATISでもより要件に合うものを選べばい良い。 Springはただの糊だから使いたいものを組み合わせたらいい。 6年前から一貫してそういう姿勢だ。 Kuina押して捨てられたりTeeda捨てて無かったことにされたり そういう心配はする必要がない。 その代わり部品選択した責任はお前が持て。
Spring + Struts2 + iBatis がクソみたいに楽だったぞ。
>>244 どうりで日本じゃSeasarの方が人気あるわけだ
まぁ実際Seasarなんて使わないけどね。
他を落とすしか自分がいいと思ってる物を持ち上げられない奴って多くなったよね、ここ数年
分散トランザクション使ったことないんですけど 以下の1ではなく2の状況が使われる理由に多い、で合ってますか? 1.複数のデータベースサーバーにコミットするとき。 2.DBは1だとしてもトランザクションのセーブとロールバックが複雑になるとき。
2は分散じゃない
じゃあ「REQUIRES_NEW」とか「NOT_SUPPORTED」の属性で トランザクションを区切るのは、データベース鯖が1つのときだと 恩恵がないですか?
分散トランザクションと宣言的トランザクションは別物じゃヴォケ
宣言的トランザクションていうのか JTAの解説で2フェーズコミットと一緒に紹介されてるから勘違いしてたよ さんくす
Springって宣言的トランザクションできるの?
こんなスレ見る前にドキュメント見ろよw
256 :
OSGi > start 1 :2011/01/16(日) 22:37:20
すみません誤射しました
Local変数のDIって需要あるのかな Local変数のアノテーションに何とかさわれそうなんだけど 使い道あるかなと思って
メソッドの引数で渡さずに外部からローカル変数に値をセットしたいってこと?
そう
ローカル変数のアノテーションに触れてもローカル変数自体に触れなくね?
asmとかjavassistでメソッドをクラスに書き換えるようなことをして ローカル変数をフィールド扱いしちゃえばできそうじゃない?
黒魔術だな。俺は好かん
ローカル変数にDIして何かいいことある?
ないよ
だよねー
肯定しても否定しても その理由がないものは 見てみぬふりをするからよろしく
そもそも
>>258 が目的もなく「アノテーションにさわれるから」という手段から思いついた程度の話だからなあ
まぁこんなとこでつべこべ書いてないでさっさと実装して公開しろってこった
いいものなら使われるしくだらなければ見向きもされないだけのこと
>>264 ローカル変数ではないけど、そのクラスしか使わないような
プロパティファイルに定義するようなことを、Spring の XML にしてDI してみたことはある。
ShouhizeiCalculator {
public void setShouhizei(Integer tax) {
・・・・
}
んで、XML にみたいな感じで。
<bean id="shouhizeiCalculator" class="jp......ShouhizeiCalculator">
<property name="shouhiZei" value="3">
</bean>
まぁいちおう設定値を外出ししているけど、実際には <util:properties> 使って
結局プロパティファイルに外出ししちゃうかな。
DIはFactoryの一種にすぎん
foreachはループの一種にすぎん
じゃあお前が説明しろよ
俺はFactoryの統合と透過ぐらいにしか考えていないな
内部フィールドにあらかじめ値がセットされた状態のオブジェクトをポコポコ作ってくれるという意味かな
Factoryクラスが乱立しない、 Factory、Singleton、Builderなどを意識させない、 あとは嫌なJNDIの臭みを消す……みたいな? Guiceを触って遊んだぐらいだけどこんな感想。
@Autowired void hoge(DataSource ds, User user...) 引数にDIしてくれるらしいんだけど、 このメソッドはどうやって呼び出せばいいの?
SpringってまだXML地獄?
オマエいつの時代の人だよ。
まじか今アノテーションでやるの? みんなSpringってどこで情報仕入れているの?
本
英語ドキュメント読め
おれはアノテーションでコードがごてごてになるほうがいやなんだけど、 こういうのって少数派なの?
一律になんでもアノテーションだから良い悪いって言うなよ。 用途によっても違うし、アノテーションシンドロームと宣言指向プログラミングは別に語るものだと思うけど。
>>283 アノテーションは基本的に関数の頭につけるだけだから
コードがごてごてになることはない。
意味のあるコメントと思えばいい。
そういう感想を抱くということは、
お前はアノテーションをわかってないか、
お前の書くコードに問題がある。
spring roo 重そう
重くないよ。つーか日本語のドキュメントでも3分も読めばそんなレスしないと思うが。
IDEが重いって意味じゃない? Railsが人気の理由ってソースや各種設定ファイルのジェネレータだと 思うけどrooはどうなるかな
そんな原始的なものに頼らない・・・・つーかそれもドキュメントを3分でも(ry
>>283 XML地獄がいいなんてのは確実に少数派だろ。
個人的には変なDIかける為にXML地獄に落ちたり、
アノテーションの山になって記載ミス起こす位ならもうファクトリーでいいじゃんって気もしてるがw
アノテーション地獄や規約地獄に落ちるくらいなら XML読むだけで済むならそっちの方がいい。
DIで良かったってケースを、誰か教えてくれ。
ユニットテストコードが書きやすくなったくらいかな
あまりユニットテストが書きやすくなったような気がしない。 1つのメソッドをテストするだけでも数百あるクラスが結合されるからテスト効率が異様に悪い。 関係ないクラスで DI エラー起こすとテストできない。なぜ POJO なのに他クラスが影響するのか。 しかも JUnit なりの上にフレームワークまるごと乗せないとテスト起動すらできないし。 というか Spring の使い方が誤ってるって話だけど。
まさかmockを作らずにユニットテストしてるんじゃないよね?
interface 定義して仕様と実装を意識した記述が出来て 見通しがすっきりするのが一番の効能な気がする。 ので、実装クラスそのまま呼べます、素敵! みたいなのを売りにしてる DI コンテナは なんか間違ってる気がして好きになれない。 そういう事が出来てもいいけど、それを売りにされるとなんか違う。 だったら LL でいいじゃんと思う。
> 実装クラスそのまま呼べます、素敵! EJB3.1のことか
>>296 理由は大きく3つ。総じてうちのプロジェクトが馬鹿だという話だけど。
1.コンポーネントの粒度が細かすぎる。曰く 「new が無いほうが良い」 らしい。
2.大量のモックを作らねばならず、モック自体の品質が問われた結果、モックの作成が禁止された。
3.設定も併せてテストするという方針(笑)により、設定ファイルの切り替えが認められなかった。
Oh...
>>299 それはもうSpring止めた方が断然まともに開発できる気がするぞw
FW導入する際に、何の為に使うのかをまず意識合わせしないとな・・・
302 :
299 :2011/03/06(日) 22:42:22.83
>>301 まあそれ以前に、java に触ったことがない奴が全体の2割くらい居たんだけどね。
ほんと SIer は地獄だぜ。
それはひどい地獄だな
なんでもかんでもDIで注入しようとしちゃったんだね・・・
>>299 , 304
そんな糞な設計をする会社と言うと、、、、、、おっと、○×△を馬鹿にするのはそれまでだ。
ドドスコスコスコDI注入
ダメ・インジェクション?
注入する上司の実装を切り替えてください
インターフェースごと替えた方がいいです。
特別損益が注入されました ストラテジー・社員パージです
List内のオブジェクトをそれぞれ入力チェックしたいんだけど、 Spring3のSpringMVCって、StrutsのindexedListPropertyみたいな機能ある?
312 :
311 :2011/05/14(土) 13:59:37.53
Bean Validationの機能でいけそうなんでちょっとやってみる
313 :
デフォルトの名無しさん :2011/06/19(日) 22:00:56.66
"ORM が危険なアンチパターンだっていうのはどれだけ言っても言い過ぎることはない"
http://tech.a-listers.jp/2011/06/16/orm_is_an_antipattern/ ・ORMはSQLベースのモデルよりも最初のうちはシンプルで理解しやすく、手早く書く事ができる。
・効率はどんなプロジェクトでも最初の頃は十分。
・不幸にもそれらのアドバンテージはプロジェクトが大きく複雑になると消失し、
抽象化は破綻し、開発者はSQLを使わなければならなくなる。
・ORMの抽象化はほぼ100%のプロジェクトで破綻する。
・オブジェクトはリレーショナルなクエリの結果を表現するのには不適切。
・不適切にクエリをオブジェクトにマッピングすることによって、ORMを廃止しない限り
簡単には修正できない非効率性がアプリケーションのあちこちにばらまかれる
・オブジェクト指向設計はリレーショナルなデータを効率的に表現できない。
これはORMが解決できないオブジェクト指向デザインの根本的な制限だ。
プロジェクトの規模がデカイ場合 全員にSQLまで書ける権限あたえると100%破綻する法則 というわけでウチの場合はDBに直接触るコーディングを書く権限(?)は 1〜3人に制限しとる
315 :
デフォルトの名無しさん :2011/09/26(月) 22:50:42.60
316 :
デフォルトの名無しさん :2011/09/30(金) 01:40:47.12
リリースされてるzipの中にソースのjarがあるよ
318 :
316 :2011/10/01(土) 05:23:06.94
みんな画面はなに使ってる? SpringMVC?
SpringMVCは画面ないだろw
プレゼンテーション層ですよー strutsが無難なの?
下手な釣り・・・
spring securityって使ってる?
324 :
デフォルトの名無しさん :2011/10/05(水) 21:40:17.20
Formから送られてきたデータに対して ValidatorやConvertorを用いるのは MVCのMであるべきですよね?
>>324 Mにも色々あるしMに持たすのはどうかと思うよ
>>325 Controllerはvalidationもページ遷移もしないほうがいいと思うんです。
ユニットテストのモックが作りづらいHttpServletRequestなどの無害化
(必要なデータをValueObjectに詰め直すとか)だけに留めないと
条件分岐とかが入ってきて、簡単なロジックなら一緒に書いてしまいたく
なりますし・・・。
>>326 ページ遷移、というかURLについての詳細をコントローラに書くと
折角RequestMappingやらControllerClassNameHandlerMappingで
コントローラから実URLへの依存を薄くしたのが意味なくなるわな
ってもそうしたら、LocationヘッダーとかでURLをふっとばす時に
どこで管理するか微妙になるけど…
最近の悩みControllerClassNameHandlerMappingがうまくいかないので
@RequestMapping(ほんじゃら)を@Targetといっしょに宣言しとる
ControllerClassNameHandlerMappingとか@RequestMapping("/hoge")で
うまくコントローラのメソッドが呼び出せない場合ってトレースできる手段ないかしらん…
Mavenのjar地獄を見てるとかつてのXML地獄を思い出す
>>329 Cプログラムのライブリラ依存地獄と比べればまだ進化してるんじゃないかと
依存関係jarをMavenで取得するより
自分で探してきてつっこんだほうがはやいのはなぜか…
>>328 Spring 2.5 を触った後はSpringから離れていたんだけど、
SpringMVC 3.0 というのは、Spring 3.0 と同時に使うの?
Spring 3.0 になって Roo とか出てきて、
なんかごてごてして興味なくなってしまったんだけど(Spring 2.5 ぐらいでちょうどよかった)
Spring MVC 3.0 は、Spring 2.5 についてきた Spring MVCとどこか違うのでしょうか?
ググレカス
>>331 2.5の知識があれば普通に3.0のmvcも動くので大してかわってない としか答えようがない
ただパッケージ構成がかわってるから、まんまじゃ動かないとかそんくらいか
>>328 は3.0版だが
同じとこにの2.x版もあるので比べてみたら
ついでに、SpringMVC使うより Sease+Strutsのほうが枯れててラク、日本語の情報もたくさん、あと安い技術者集めやすい
seaser3頓挫で終了
>>335 企業ユースだと今が旬だったりするらしい
増員のために経歴書集めてる営業さんにみしてもらったら
ここ1,2年でSeasar2経験書いてるひとが大半。 …イチから環境構築できるのは一握りらしいけど
話はかわるが、SpringMVC+Hibernateで
hibernate.cfg.xmlを無くしてhoge-servlet.xmlに一本化するサンプルどっかにないもんかね
色々ためしてるんだが
org.springframework.orm.hibernate3.LocalSessionFactoryBean
のbean定義のとこでマッピングがうまくいかんですたい。
337 :
デフォルトの名無しさん :2011/10/17(月) 20:28:25.26
> ここ1,2年でSeasar2経験書いてるひとが大半。 そういう奴等は 案件にPGとして関わって、ただ決められたルールで使える 程度の奴等だろ
確かにSpringとかSeasarは 利用経験のみなのか構築経験アリなのかで大きくちがうな 前者の特徴は「前のとこならこうできたのに…」と文句ばかりで五月蝿いが じゃあその設定よろしく、というと「わかりません」とか「気のせいだった」とか あとSpringでアノテーション使いまくるとエラー出たときに原因がわからづれ 特に@RunWith(SpringJUnit4ClassRunner.class) StackOverFlowみたいな英サイトに全く同じエラー文言なのに解決法が全く違うとか多すぎてわろた おまけ: StackOverFlowの大半が親切すきて 日本人て駄目部族だなぁとおもた。(俺も含む)
Stack over flowのコード貼り付け機能は便利だね てよりSpringにぴったりだ エラーコード全部とJavaコードとXMLがないと診断できん
340 :
デフォルトの名無しさん :2011/10/18(火) 14:11:41.53
> あとSpringでアノテーション使いまくるとエラー出たときに原因がわからづれ > 特に@RunWith(SpringJUnit4ClassRunner.class) > StackOverFlowみたいな英サイトに全く同じエラー文言なのに解決法が全く違うとか多すぎてわろた それって お前がspringのコアの挙動を理解してないだけだろw アノテーション情報から、どのように依存関係やaopが実現されるか コードベースでで理解が出来てれば 原因究明なんて一瞬だろ おまえも「利用経験のみ」の奴と変わらんよw 「設定ファイルを使ったことがあります、キリッ」って面接で言うんだろ?w
>>340 本気でいってるならヤバいな
そんなんなら本家のコミュニティとかでコード貼り付け祭りになってる理由を教えてくれ
ていうかエラーしか張らない奴がいると "全部張れ" が常套句になってるのがワロス
神が光臨してるようなので質問させてください
application.xmlにannotation-drivenを追加したらエラーが出たんですが
(そのままコメントアウトするとトランザクションが働かないけど普通に動きます)
>>340 さんなら原因わかりますよね
343 :
デフォルトの名無しさん :2011/10/18(火) 14:51:56.70
雑魚ばかりだなw もうちょっとレベル高いのいないのか? ひょっとしてxmlにファイル追加するしか出来ない雑魚ばかりですか?w
わからないのかw
345 :
デフォルトの名無しさん :2011/10/18(火) 14:56:17.97
>>342 『設定ファイルを記述間違えたらエラーが出るんですけど・・・><』
って質問メール送ってごらんww
初心者クンw
どこに送らせる気だよw
347 :
デフォルトの名無しさん :2011/10/18(火) 15:08:35.95
つーか自分でフレームワークの設計ぐらいしたことない雑魚ばかりなの?w エラーで嵌ってる奴って雑魚以外いないんだけどw 仮に、設計者自身が設定ファイルのエラーで嵌ると思うか?w お前のレベルが低いだけだと気づけよカス
348 :
デフォルトの名無しさん :2011/10/18(火) 15:09:06.84
>>340 3.0ベースで後でリファレンスに使えるような本のオススメあったらおしえて
英書でもいいよん
349 :
デフォルトの名無しさん :2011/10/18(火) 18:02:20.58
>>348 普通にAPI見て開発できないレベルなら
触らないほうが良いぞw
それか単なる案件の土方PGなら、技術系リーダーに教えてもらえ
351 :
デフォルトの名無しさん :2011/10/18(火) 18:59:31.43
Seasarだろうがspring だろうが本質は同じ コードを解析すれば コンポーネント管理の実態がわかる 後は仕様の要求に合わせて設定ファイルと利用クラスを実装するだけ 簡単な話だ 本を買わないとわからないようなレベルの時点で技術者としては終わっている 少なくとも客先に提案出来るようなクラスじゃないことは間違いない つまり、ただの土方PGってコトだなw
神はアノテーション派? それともXML派?
353 :
デフォルトの名無しさん :2011/10/18(火) 19:27:56.18
/ ̄ ̄ ヽ, / ', / _/\/\/\/|_ \ ノ//, {0} /¨`ヽ {0} ,ミヽ / \ / \ / く l ヽ._.ノ ', ゝ \ <本当に1ミリも操作できねぇ> / /⌒ リ `ー'′ ' ⌒\ \ / \ (  ̄ ̄⌒ ⌒ ̄ _)  ̄|/\/\/\/ ̄ ` ̄ ̄`ヽ /´ ̄
いーじゃん。解説書は理解速めるのに役に立つよー。
355 :
デフォルトの名無しさん :2011/10/18(火) 19:38:15.39
>>352 > アノテーション派
クラスファイルに設定を記述すると
設定が各クラスに散在することになる
後々、PJ全体の定義が把握しにくくなる
ものによりけりだけど @Transactional は便利じゃね?
なんでも一律にXMLかアノテーションでやると思っている馬鹿なんているの? 用途によって使い分けなのが当たり前でしょ。
358 :
デフォルトの名無しさん :2011/10/18(火) 21:22:24.28
ここは底辺の集まりのようだなw 初歩的なエラーで延々と悩んでる雑魚や 定義を何処に書くかで揉めてるアリのような虫けらとか PG世界の底辺を垣間見たようだわw
360 :
デフォルトの名無しさん :2011/10/18(火) 23:26:24.93
誰でも使えるように設計されたspring フレームワーク それの設定ファイルが使えたからって喜んでる馬鹿って何なの? 当たり前だってw つーか、ここの連中って 自分でDIコンテナ程度は組めるんだろうな? spring を評価するんなら最低レベルのスキルだぞ
361 :
デフォルトの名無しさん :2011/10/18(火) 23:32:05.17
自分でDIコンテナの設計ぐらいできないと spring や他のDIコンテナの評価する資格すらない 草野球のオッサンが、イチローの評価してるようなモンだ
Sunに就職してJava8にクロージャーいれてきてくれ、神
そういやSunもうないか… じゃOracleで、ついでにDBも新しいのつくってきてくれ11gが使いずらくて10から移行できん
365 :
デフォルトの名無しさん :2011/10/20(木) 19:36:39.03
なんだ自分のことか
3.0.6の@Transactionalがうまくいかねぇ って英語サイト漁ってたら3.1系(まだRCだけど)入れろとか書かれてたんだが そんなんで動くんだろうか… 自分はチキンなのでバージョンを落とした…
367 :
デフォルトの名無しさん :2011/10/21(金) 09:34:59.78
>>366 お前、先週あたりから
ずっと悩んでるなw
「@Transactionalがぁ」って何千回言ったら気が済むんだ?w
一生悩んどけw
368 :
デフォルトの名無しさん :2011/10/21(金) 09:36:09.60
>>366 コードで追っかけることすら出来ない雑魚だな
問題解決能力の無い雑魚はいらん
369 :
デフォルトの名無しさん :2011/10/21(金) 19:18:01.15
uyさん、名前入れ忘れてますよ。
>>366 関係ライブラリが入ってないだけでは
cglibとAOP Allianceとか、あとなにか忘れた
bean定義のアノテーション「だけ」、の話なら
動的に参照するなり、debugレベルのログみるなりで把握できるから
xmlだけの利点にはならんような印象
クロージャてそんな必要か?
373 :
デフォルトの名無しさん :2011/10/24(月) 00:38:18.04
ラムダ、yield、パターンマッチ、ASTとかも、全部欲しいわ♪
関数オブジェクトほしいな 無名クラスのコンストラクタでやると不細工だからさ new Hoge() { ..{ ....System.out.println("hello"); ..} }; こうしたいわ new Hoge(){ ..System.out.println("hello"); };
つーか、昨今のjavaScriptブームみたいなもんで、 おもちゃにこだわり過ぎて本質的なこと 見落とすなよ。別にCOBOL or PL/Iでも Systemは動くんだからな。別に流行に乗ったところで 儲かるのはひと握りだし。
376 :
デフォルトの名無しさん :2011/10/24(月) 23:15:49.31
本質はFWにあるのではない いかに実現させるかだ
ロジックの記述に柔軟な表現力が得られれば、それが顧客のためにもなりますよ(・∀・) まあ、枝葉の技術がどうのとかは百も承知の上で、あって困るものでも無いので欲しいのよ。
378 :
デフォルトの名無しさん :2011/10/24(月) 23:22:12.22
フレームワーク導入すれば 柔軟に対応できると夢みてるようだが 実際はフレームワークの制約に縛られて やりたいことが実現できないとかザラにある
あれ?、フレームワークの話だったのか。 Javaに欲しい言語仕様の話かと思ってた。 めんごめんご(´3`)
380 :
デフォルトの名無しさん :2011/10/24(月) 23:44:34.50
ヒント:スレタイ
>>350 リファレンスが良く出来てるんでだまされたと思って読まれてみてはどうかと。
API の Javadoc が(特に interface は)丁寧に書いてあるので、それで補完。
あとは困った語句でググれば大抵どうにかなると思います。
Spring 自体は 1.1 の時代にコアの考えはもう完成しちゃってるんで、
多少古い文献でもそうそうズレはないと言う感じ。
(昔から使ってるからそう思うだけかも知れない。)
久しぶりに Spring のサブプロダクトのリファレンス見て、
当たり前のように interface が記述してあって
ブレねえなぁさすがspringブレねえと思った。
最近のJava(FW)はstruts2、spring3、seasar2三巨頭で頭打ちな感じで つまらんな。何かおもろいことないんかい? とりあえずカッサンドラとか 見てっけど、apacheもなんか2番煎じプロジェクトばっかだな。
>>382 Web周りの話にのってみるが、Seasar+Strutsに比べると
Struts2, SpringMVCはあんま聞かないけど使われとるのだろうか
RubyでいうSinatraみたいな軽めのフレームワークはJavaだと流行らんのかしらん
384 :
デフォルトの名無しさん :2011/10/29(土) 15:09:15.33
初歩でエラーです
385 :
デフォルトの名無しさん :2011/10/29(土) 15:56:48.93
>>383 Strutsに失望した設計者が
SpringMVCこそ設計者の答えじゃないのか?
386 :
デフォルトの名無しさん :2011/10/29(土) 16:31:29.51
Spring解析中
>>383 日本ではほぼ皆無だが、seasar2はもう先が無いんだろ。
安定志向な劣等日本SIには丁度良いんだろうが。
あと俺は経験上、LLで大規模書くのは賛成せんな。
そこらじゅうに潜在リスクが残るし。
>>385 SpringMVCは1.0時代からあったが、とりあえずstruts系とは
まったく違う流れで嫌われてた印象あるし、3になっても
アノテを使わんかったらなんか生サブレ書いてる感じがする。
388 :
デフォルトの名無しさん :2011/10/29(土) 22:46:45.88
SpringMVCって流行ってないの? 現場でよく見かける組み合わせは Struts+spring+hibernateかな?
389 :
デフォルトの名無しさん :2011/10/29(土) 23:57:28.57
spring複雑な構造だなぁ
要員募集でチラ見した範囲内なら ここ2年くらいはJavaでWebだともれなくStrutsだったな 客も上司もわからんうちに詰め込むぐらい強引にブチこんでも 今度は要員がそろわないという難行にブチあたる
俺の経験した職場だと Hibernate は一回もない。 iBATIS 使った案件はあったが俺はアサインされなかったのでよう知らん。 SQL って十分に論理的で抽象化されてると思うんだけど それを隠ぺいしなきゃいけないってどういう状態なの?
>>391 根本的な所が間違っている。
SQLが面倒なのは取得したデータを
変数に詰め替える所
>>392 それだけが問題なら凄く昔からあって終了してる
DBごとの独自部分が嫌だからSQLごと隠蔽ってんだろ
394 :
デフォルトの名無しさん :2011/10/30(日) 02:17:19.93
SQL書くの面倒。 流れるように書きたいので、S2JDBC使う。
395 :
デフォルトの名無しさん :2011/10/30(日) 02:36:01.15
「流れるように書きたいので」(藁
あああのサブクエリもまともに書けないあれね
流れるようなインターフェースは 実装コストにリターンが全く見合ってない、 時間の無駄の典型に思う。 自分では実装しなくて、実装されたものを使う時であっても。
398 :
デフォルトの名無しさん :2011/10/30(日) 11:48:10.43
399 :
デフォルトの名無しさん :2011/10/30(日) 11:49:26.99
>>393 SQL直書きが一番高速
これが一番ベストの選択だ
だが、SQLではスケールできない。 サーバーを何台も使うシステムでは JOINは嫌われる。
rdbのrがなにか知っているの発言かい つかMappingフレームワークのスレでやれw Springは一応JPA押しなんだっけか まあJdbcDaoSupportなんかもあるけど
今はNoSQLが流行ってきてるからねぇ。 RDBはトランザクションのために使ってるけど、 最近はそれだけでいいのでは?って思う。
403 :
デフォルトの名無しさん :2011/10/30(日) 13:31:15.22
Springって降るスタック?
フルスタックとかやめてくれ。 今はPOJOの時代だ。 Springというフレームワークを使って作ると Springに依存しないものが出来上がるのが 素晴らしいところなんだよ。
>>403 根本のDIのとこ以外は他のモノを利用できるような設計になってるから
SpringFramework全体ではフルスタックではないのでは
>>400 意味わからんw
テーブル結合の意味わかってるか?w
普通にSQLで取得した方が負荷もコストも良いのは歴然だ
それをDAOやらJPAやら変てこなFWで取得するから
メモリも余計食うし、FWが生成するSQLも効率が劇悪のパフォーマンス最悪のSQLを吐き出す
諸悪の根源だな
>>406 テーブル結合をするには、
その二つのテーブルが同じサーバーにないと
いけないってのは分かる?
>>407 えっと、普通フロントになるサーバをクラスタリングする場合
DBはバックエンド側にまわさないか?
どんなHW要件なのか詳しく知りたいぞそれw
>>406 貴公のDaoの定義がよくわからん
SQLを直接使うなら DAOは逆に必須だろう。
>>409 必須ではないけど、まあ大抵テーブルごとのDaoにおちつくな
ただDaoってあくまで層分けのための範囲・概念だから
SpringのJdbcDaoSuppportみたいなSQLガリガリ実装もあれば
Hibernate実装のこともあるし
層分けっていうか、ユニットテストのために どうしてもそうするしか無いと思うよ。 前提としてユニットテストでは原則として データベースサーバー無しで動かないといけない。 そうするとどうしてもデータベース部分を 切り離す必要が出てくるよね?
>>410 DAOなんて、
大層な名前つけてるけど所詮ただの入れ物だよ
SQLで取得したものを何らかの入れ物に保持する必要があるために
入れ物のクラスを作ってやる
それをDAOと呼ぶだけ
何か特別な意味のあるものと錯覚してる奴が多すぎw
>>407 クラスタリングされていても
普通に取得できるのはわかるか?
>>412 いや、入れ物のクラスはVOとかDTOとかBeanだろw
DAOは入れ物じゃなくて操作だろ。
416 :
デフォルトの名無しさん :2011/10/30(日) 15:39:15.57
SpringFW使うときの、一般的なクラス構成は? Actionとかあるの?
るー ∩(・ω・)∩
>>414 それは画面側の入れ物だろ
RDBの対象の入れ物はDAOだ
別にDAOはRDB専用じゃないだろ。 RDBの対象のとか言ってる時点で お前わかってないんじゃねって思うよ。
所詮はDAOなんて ただの入れ物に過ぎん プログラムの都合上何かの入れ物に保持する必要があるから 便宜的に使ってるに過ぎん
DAOが何の略か知っていれば、 データにアクセスするためのオブジェクトであって データを保持するオブジェクトではないと分かるはずなんだが・・・
だから、DAO は入れ物じゃねえ。 入れ物は VOやDTOだろ。
名前なんてどうでもいいんだよ ひとつのクラスで入れ物とアクセスを記述する例だってあるんだから たかだかJDBCに接続してSQL発行する程度で定義の議論なんて馬鹿か
>>423 DB層なんてやってることは単純だからね
>>423 > ひとつのクラスで入れ物とアクセスを記述する例だってあるんだから
DAOは、アクセスするだけで入れものではないと
決まっているので、DAOの話をするのなら入れ物ではありません。
>>424 当たり前だw
単純だが冗長な部分を分離するのがDAOの目的。
DAOが太ってしまったら、なんのために分離したのかわからん。
DB層が単純と言うよりも、DB層は意図的に単純にするんだよ。
>>423 >ひとつのクラスで入れ物とアクセスを記述する例だってあるんだから
まあ、そういう例があろうがなかろうが・・・
一人きりで作ってて、他人に説明する必要が無いなら
>名前なんてどうでもいいんだよ
は、正しいけど・・・。
おそらく学生か何かだろ
>>426 DB層なんて、エンティティとアクセスクラス作って終わり
それだけの話なのに
こんなに単純な構造で何をウダウダいう必要があるんだ?w
雑魚ほど吼えるなw
ほとんどが素人に毛が生えた程度なんでしょう だからくだらない議論を延々と続けてる
>>429 全角アルファベット使っている奴=全部同一人物が
ごちゃごちゃいっているからじゃねーの?w
>>430 こんな掃き溜めスレに来る奴に上級がいるとでも思うか?w
>>426 みたいな底辺ばっかりだよw
たぶん
>>408 と
>>413 は、
>>407 (=
>>400 ?) の真意がわかっていない。
mixi、モバゲーなどの、超大規模 web 2.0 系では、MySQL を数百台並べるけど、
ああいったところは、たとえば日記テーブルとユーザマスタテーブルを別DBサーバにしちゃうんだよ。
(日記DBと、ユーザマスタDBのなかで、さらにクラスタリングする)
だから SQL で join できない。プログラムから、それぞれの DB 用のコネクションを取得して、
それぞれを単発のSQLで実行して取得する。
だから業務系 Java のよくできたフレームワークを使ったソースと比べると、
重複も多いしみにくいけど、彼らはパフォーマンス至上主義であり、これまでの試行錯誤の結果だからしょうがない。
DeNA、GREE、mixi などの開発ブログを追いかけたり、技術系イベントに行くと、こういった話が出てくる。
特殊なケースを さも一般のように語る阿呆がいるなw
436 :
434 :2011/10/30(日) 17:52:49.47
まぁたしかに、業務系だったら(アクセス料にもよるけど)
>>434 のようなことまでする必要はないかもね。
え? 特殊? お前どんなの作ってるの?
今は業務系よりも ウェブサービスのほうが 大規模アプリになってしまったよね。
この人はウェブサービスをどういうものだと思ってるのか。
> mixi、モバゲーなどの、超大規模 web 2.0 系では、MySQL を数百台並べるけど、 > ああいったところは、たとえば日記テーブルとユーザマスタテーブルを別DBサーバにしちゃうんだよ。 > (日記DBと、ユーザマスタDBのなかで、さらにクラスタリングする) > > だから SQL で join できない 別DBでもSQLで取得できるのを知らないんだなw たとえばoracleなんか簡単に出来る
oracle って DBサーバまたいで join とか出来たっけ?
>>442 できない。
できるRDMSって聞いたこと無いな。
できるにしても、別サーバーなんだから
極端にパフォーマンスは落ちるだろうね。
データベースリンク使えばできるよ
Oracleにはデータベース・リンクというものがあるだろ 何で知らないんだよ雑魚w
>>443 >
>>442 > できない。
> できるRDMSって聞いたこと無いな。
>
> できるにしても、別サーバーなんだから
> 極端にパフォーマンスは落ちるだろうね。
コイツwww
馬鹿がいたぞwww
こんなんで技術者っていうのかよwww
知ったかぶりの極地だなwww
そして一分で論破されてやがるwww
消えろカスwww
447 :
444 :2011/10/30(日) 19:55:35.45
ちなみにSQLServerにも似たような機能がある PostgreSQLにも何かあったような気がする
まあ内容は妥当なことを言ってるんだろうけど・・・ なんでそんなにヒートアップしてるの?
しかし
>>441 って凄いな〜
別DBだからSQLで問い合わせ出来ないとか自信満々に言ってやがるw
恥ずかしくないのかねぇw
リンク間違ってるぞ
なんか、わざとらしい自演を見た気がする
>>450 あ、間違えたw
しかし
>>443 って凄いな〜
別DBだからSQLで問い合わせ出来ないとか自信満々に言ってやがるw
恥ずかしくないのかねぇw
あ、また間違えたwww
しかし
>>434 って凄いな〜
別DBだからSQLで問い合わせ出来ないとか自信満々に言ってやがるw
恥ずかしくないのかねぇw
おちつけ
言ってる内容は間違ってないんだが どうも言い方がねぇ
<ref local= って複数指定できないの? エラーになるんだが
457 :
434 :2011/10/30(日) 22:16:17.07
>>453 DBリンクできるのは知ってるけど、
仮に日記DBにユーザマスタDBのテーブルを接続したとして、
日記DB経由でアクセスするよりも、直接ユーザマスタDBにアクセスしたほうが速いとおもう。
(というか余計な要素が減る)
>>453 に言いたいのは、「できる/できない」を「知っている/知らない」じゃないんだよ。
実際にやってみて、ちゃんと使い物になるかどうかなんだよ。
よく「それ○○でできますよ」っていう人がいるけれど、
実案件で実際にやったことない人が多すぎる。
<ここから>
DBリンクの機能も、別DBにあるテーブルをjoinするよりも、
どちらかというと他システム連携とかの目的で使うことが多いんじゃないの?
たとえば、他システムのインターフェーステーブルだけを、自分のDBにDBリンクしておいて、
データ連携するときだけ、そのテーブルに書き込むとか、あるいはその逆。
※なので、自分はDBリンクを否定しているわけではないよ。
こういった目的でよく使うし。
DBリンク越しにjoinするのはネットワークをまたがるのだから(別DBとやらが、同一サーバにある場合はこの限りではないが)
パフォーマンスも悪いし、joinしたいんだったら同じDBに乗せるべきだと思う。
</ここまで>
<ここから>〜<ここまで> のところは、自分が経験してきたプロジェクトが
そういうポリシーだったのが多かったのでこのような考え方をしているが、
もしDBリンクについて別の活用例があるのならごめんなさい。
DBリンクなんて
他でも幾らでも使用実績あるだろ
何で知らないんだよ
>>434 は空想世間で生活してるのか?w
459 :
434 :2011/10/30(日) 22:23:10.44
いや、頻繁な join や、よくアクセスするテーブルも DBリンク越しにやってるのかなー、と思って。 ※自分なら、頻繁にアクセスするようなテーブルは、DBリンク越しにしないで 自分のDBに持ってきてしまうので。
パフォーマンスに無頓着な所が データベースリンクを使ってるよ 重いですねぇ。もっとサーバーのスペックを挙げないといけませんねって所。 こういう所はサーバーの台数を増やすという発想がない。 サーバー一台の性能の限界が、開発力の限界になってる。
>>456 エラーとコードを全部晒せ
まあ、ここよりstackoverflowにでもいって
全部コード晒して聞いてみたほうがはやいと思う
>>459 だったらそもそも別に分ける必要すらないだろ
463 :
デフォルトの名無しさん :2011/10/31(月) 22:52:55.21
ForkJoinPool なんで使ってるんだ? もう7を先取りしてるとか? 安定版を供給しなさいw
>>458 つーか、上場企業のシステムとかだとテーブル1万とか普通にあるからな。
普通は夜間バッチとかSOAPやREST系でDBと切り離してデータ交換するが、
リアル系はDBリンクがないときっついよな。
466 :
デフォルトの名無しさん :2011/11/01(火) 00:16:26.56
うーむ、 WebSphereUowTransactionManager なんて用意してるのかよ spring は用意万端すぎるな
>>464 そうだな、DBリンクなんて
どの企業でも当たり前のように使ってる
既に8の時からあったから、技術者なら知っていて当然の常識だな
468 :
デフォルトの名無しさん :2011/11/01(火) 07:04:46.99
WebSphereUowTransactionManagerでコンパイルエラーになるわ・・・ WASのjarが無いから
469 :
デフォルトの名無しさん :2011/11/01(火) 14:07:38.14
どうもspringの挙動が理解できん RegexpMethodPointcutAdvisorのadviceプロパティにセットするだけで 何でメソッドをインターセプト出来るんだ?
470 :
デフォルトの名無しさん :2011/11/01(火) 14:17:42.05
あるターゲットクラスのメソッドに対して どうやってフック、コールバックしてんだ? vmに何かの指令を出してるのか? バイトコードをどのように操作してんだ?
471 :
デフォルトの名無しさん :2011/11/01(火) 15:06:34.23
「誰が」invokeしてるんだ?
472 :
デフォルトの名無しさん :2011/11/01(火) 15:13:07.96
InvocationHandlerか なるほろ
473 :
デフォルトの名無しさん :2011/11/01(火) 16:50:13.33
コイツがフック船長してんのかよ なーんだw
>>466 IBM系はIBMの中の人がなんかやってんじゃね
Spring関係の日本語ドキュメントとかも結構おいてるし、読みにくいけど…
475 :
デフォルトの名無しさん :2011/11/03(木) 10:37:43.82
spring使う程度ならば (定義ファイルに書いて利用する程度) フレームワークの理解などいらんか ・レベル1 --- 「spring使えます」程度の雑魚 ・レベル2 --- springのフレームワーク理解できます ・レベル3 --- springのフレームワークのバイトコード操作部分の知識もあります
springのバイトコード書き換えって どのレベルまでなの? 例えばクラスAの親クラスとの関係まで書き換えられる? それともフィールドに値を動的変更する程度? その程度ならばリフレクションでも可能だが
本当の意味のバイトレベルの操作というのは クラスの構造や親クラスとの継承関係までも動的に変更できることを指すんだが SPRINGフレームワークでは、そこまでの機能を提供してるのだろうか?
DI のコードのデバッグってただでさえややこしいのに、 バイトコード変換なんてことまでされた日には・・・。
例えば動的に クラスのメソッドを追加するとか、フィールドを追加するとか クラスの構造自体を動的に変更するとか そこまでのバイトレベルの機能を提供してるんだろうか?
やりたきゃasmでも使って好きにしろ ここはお前のtwitterではない
SPRINGが提供してる機能はどうってことない 自分で実装すれば良い メソッドのバインディング程度ならば軽く実装出来るだろう 特に使う必要すら感じない
>>481 その通り
自作がカスタマイズが効いて一番良い
つーか、バイトコード書き換えとか誰か望んでるんか? そんな方面の実現はスクリプトで十分じゃねぇの? メンバーにボンクラがいたりしたら、CPUアーキ テクチャも勿論だし、JDK、VMレベルの前提環境が 変わった途端、あちこち動かなくなるんじゃね?
javassistとか知らない低脳か?
知らない低脳なので詳しく解説してくれ
>>484 springのやってること自体を否定する低レベル乙
Spring 2.5 までの知識しかないけど、 Spring ってバイトコード書きかえってやってるの? AOP のインターセプターがやっている、あるメソッド呼出と、レシーバとの間にproxyクラスを挟むだけだと思っているんだけど。 # オリジナルの挙動は書き換えない。 javassist でやっているバイトコード書き換えは、Seasar2 のほうなのでは?
>>488 > Spring ってバイトコード書きかえってやってるの?
やってるよ
知ってるとか知らんとかの問題じゃねぇだろ。 望んでるんかと書いてるが日本語読めないのか?
と底辺が申してますw
>>486 アプリをランタイムが実行するときに
コンパイルされたソースを書き換えるライブラリがあるんよ。
JBossならJavassistっていう東工大の人が作った有名なの使ってるし
SplingならAOP Aliance?とかいうの使ってたはず。
O/Rマッパーもエンティティクラスをあれで書き換えてるじゃないかな。
> SplingならAOP Aliance?とかいうの使ってたはず。 ぷっw 無知
Splingぐらい知っとけアホw
綴りから間違えてる馬鹿がいるなw
ついでにAllianceもLが一個たらんな AOP AllianceてSpringで配布やつと SourceForgeで配布してるやつに分裂してるのはなぜなんだぜ
Allianceならまだわかるけどな。 Springを間違えるって大丈夫か? 春だぞ春。summer、autumn(fall)、winterと一緒に 中学生で習う英単語だろ?
しゅぷりんぐの偉大なところはまともな日本語こみゅがなくても誰も困ってないこと
つーか底辺が多すぎるんだが 俺はソース全部解析したから spring の動きとか仕組みは全部把握してる 技術者と名乗りたいのなら、最低限のレベルだ
どうせ「案件で設定ファイルに書いたことあります」キリッ ってやつばかりなんろうがw いくらフレームワークが発達しても 内部の挙動ぐらい把握できないような雑魚が増えるのはどうかと思うがねぇ
内部の動き把握するぐらいで なに自慢してるの?w
なら解説してみろよ どうせ理解すらしてないんだろうけど FWのコードを理解するのって実力が必要だからな
なにを解説しろと? springなんてリフレクションの機能使って アノテーション見て、適当な値を入れたり、 処理を割りこませてるだけだろ。
理解するだけで実力自慢かよ 自慢するならなんか公開してからだろ。お前のリポジトリどこよ?
Spring Rooの話題ってあまりでないね あとソース理解してるとかより、コミッターやってますとか 一日一回stackoverflowとかでヘルプしてますとかのほうが みんな幸せになれるんじゃね
>>506 じゃあ、言いだしっぺのあなたからどうぞ(笑)
>>505 具体的に説明して欲しいな
MethodPointcutAdvisorはどこでバインドされてるとか
>>505 > なにを解説しろと?
> springなんてリフレクションの機能使って
> アノテーション見て、適当な値を入れたり、
> 処理を割りこませてるだけだろ。
あぁ、コイツ全然わかってねーやw
たぶん解析も出来てないし、説明も出来ないわw
>>507 そんなハイレベルな人がいると思うか?
2chの掃き溜めスレに
>>510 いやw springのソース見ろよ。っていか見る以前に
springを使ったソースコードに
アノテーション使ってるだろ。
反論したいというそのお前の気持はわかるが
もう少し具体的にかけや。
お前のそのレス、中にもがなにも無いぞ。
わかってな〜い、わかってな〜いに終始してるだけだ。
>>512 だ・か・ら
具体的に説明して欲しいな
MethodPointcutAdvisorはどこでバインドされてるとか
バインドとコンテナの仕組みを簡単に説明しろ
どうせ、出来ないんだろうがw
早く説明してくれよ素人クンw
お前が先に説明しろよw 言いだしっぺの法則。其の二w
ヒントjava.lang.intrument
誰かと勘違いしてるんだろう
だから
>>505 のような雑魚に聞いても無駄だって
こいつのレス読めば底辺の土方PGだって読み取れるだろw
519 :
デフォルトの名無しさん :2011/11/06(日) 02:45:16.21
Springってどうよ
(・ω・) うーは黙ってろ
読めば分かることで、なんか偉そうに しているのを見ると微笑ましいw
と底辺が申してます
まぁここに来る人で達人なんかいないだろう
しかし
>>505 がプログラムなど全く出来ない糞なのが
よくわかったと思う、コイツは史上最低の阿呆だな
SPRINGのソースは難しいよ これを把握できる人なんて相当上級だよ 少なくともこのスレに投稿する連中が理解できるレベルじゃないのは確か そんなレベルだったら技術の基盤チーム担当になれる
難しいといっても、アセンブラ使えて さらにプログラムの書き換えまでやっていた 俺にとっては、読めばすぐに分かる程度のコードだろうな。
とバカが言っております 皆さんスルーしてやって下さい ただの狂人の妄想ですからw
他人が簡単に理解できるのを見ると 辛いよねw でも、君、アセンブラやったことある?
キチガイが登場してきたなw アセンブラとか言ってますよww 市ね、と言ってあげましょうね
>>526 のような屑っているんだよなぁ
実際にコードが読めないのに
まるで底辺のゆとりが「俺が本気だしたら凄いんだぞ!明日から本気出す」
と一緒なんだよなぁw
なんでこういう馬鹿が生きてるのか?不思議だわww
そうそう 実際に読んでもいないのに 俺はアセンブラできるから、本気になったら読めるだろう とか言い出す奴が一番レベル低いんだよなぁ オブジェクト指向とアセンブラって全く構造が違うのに その入り口さえも理解してない こういう人を育てた 親の教育が間違ってたと思うんだよ、そもそも生んだ事自体が間違えだったかもねw
はて? なんでアセンブラやっていたら オブジェクト指向できないと思っちゃうわけ?w 両方できるぞ。
まずは読んでから言いましょうね 底辺の土方PGクンw
どうせダウンロードすらしてない底辺だろうけどw アセンブラだってよww いつの時代だよww カスww
アセンブラの土方プログラマに オブジェクト指向の複雑なコードを解読する力なんでないよ springはパッケージが膨大で極めて複雑な処理のオンパレードだ 土方プログラマ如きに読めるシロモノじゃないよ
一昔前の Sesar2 スレかと思うほどにつまらん煽り合い・・・ どうしてこうなった。
>>535 理解するならソースなんかより
ロッドジョンソンの本でも読んだほうがはやいんでは
最終的にソース読むとしても
どんな考えのもとにフレームワークを設計したか、を知るには
自然言語のほうがいいですやん
>>536 2chだから、あとなんか話題ふってw
>>537 ロッドジョンソンの本はいろいろあるが
springの設計思想について叙述した著書がない
だからコードを直接見て理解するのが最短だろう
1.1 時代だとトランザクションの為に AOP 使うのに GCLIB が必要になってた気がする。 今って GCLIB 使ってないんか。 化石のような知識のままでも3.0普通に使えるし 設計の洗練されっぷりに鼻血が出る。
>>540 > 今って GCLIB 使ってないんか。
使ってるよ
今は3.1だけどな 3.0とか思い込んでる奴は既に化石w
3.1はまだRCだろ てかSpring使うような案件だと3.1出てもすぐには使わないんではなイカ
>>540 アスペクト関係使うときはaop allianceとかと一緒にいれるね
あとなんかひとつ必要だった気がスルガわすれた orz
GCじゃなくて、cglibな。
また綴りさえも間違う馬鹿いたのかよw
我ながらひでえな>綴り 指摘サンクス。
英語のマニュアル載せても読めないw 日本語の乗せてくれ
Spring2.5以降いじっていないが (顧客のウンコフレームワークしか使えない仕事に移ったので)、 3.1 をいじってみるか。
いじるって どこまでのレベル? 設定ファイルを色々と試す程度か?
applicationContext.xml をちょこっと弄る程度だろ どうせw
553 :
550 :2011/11/06(日) 20:14:37.00
Spring2.5 のころはちゃんとソース読んでたぞ!! HibernateDaoSupport とか iBatisDaoSupport の仕組みとか、 同梱されているPDFはもちろん、あとはソース読んだりして勉強した。 JUnit のスーパークラスも Spring から提供されているが、 「テスト終わった後、トランザクションはロールバックされるの? コミットされるの?」 ということもわかっていなかったので、追っかけたりしていた。 偉そうに書いているが、何分自分のスキルが低いので、PDF 検索したりソースを grep ばかりしていた。 3.1は、まずいろいろ忘れているので、 設定ファイルを色々と試したり applicationContext.xml をちょこっといじる程度から 始めないといけないなw ROOって必須ではないんだよね? ROO でエンティティクラスを自動生成するデモを見たことがあるけど、 単なるエンティティなのに、なんかいろいろなクラスが生成されてて「ちょっとなぁ・・」っと思っていたので。
ROOは単なるツールだろ 何でそんな基本すら忘れてるんだよw 本当に実績あんのか?
> 同梱されているPDFはもちろん、あとはソース読んだりして勉強した。 そんなんあったっけ?
556 :
550 :2011/11/06(日) 21:38:30.77
> ROOは単なるツールだろ いや、2.5以降ほんとうにSpring離れていたので、 (離れていても、blog 等追いかけてろ、と言われればその通りだが) 認識したかっただけです。 PDF は、spring のフルセットの zip をダウンロードすると、その中に入っていた気がする。
557 :
550 :2011/11/06(日) 21:39:14.70
誤:認識したかっただけです 正:確認したかっただけです
spring のソースコードを読むために必要な技術 について書かれている本ってある?
ひたすら追っかけるしかねーんじゃないの?
> PDF は、spring のフルセットの zip をダウンロードすると、その中に入っていた気がする。 解凍してみたけど 無いようなんだが・・・
561 :
550 :2011/11/06(日) 23:06:16.08
>>560 いま、Spring のサイトから zip を落としてみたけど、入っていたよ。
http://www.springsource.org/ →ページ下の Projects で Spring Core をクリック
→ページ右側の RELEASE SUMMARY で SpringFramework 2.5.6SEC03 の download をクリック
→spring-framework-2.5.6.SEC03-with-docs.zip をダウンロード(35.4MBのやつ)
zip を展開して、docs\reference\pdf の下にある。
PDF だけ見たければ、
http://www.springsource.org/ →ページ下の Get Started の Documentation
→SpringCore
→ページ右側に、PDF、HTML、javadoc、changelog がある。
APIリファレンスのPDF版なら1.xから入ってたよ あれはHibernateと同様にdocbookからHTMLとPDFを生成してる 同じ人がコントリビュートしたんだけどね
ソース読み自慢してるアホがいるけど 使い方を知ってれば十分だろ ソースを読まないと使いこなせないように できているとすれば、それはツールとして間違っている
使えます程度の初心者 そんなのを「技術者」と呼んでいいのか?
STSって使ってる人いますか? 開発に必須ツールなの?
無料になったんだっけ?
聞いたこと無い
>>564 そんなものは要求しだいだろ。
プログラムだけしてればいいなら別だが。
>>564 それは案件のPGレベルだな
土方プログラマと呼ばれる類の人種だ
使い捨てだ
使い捨てのPGなら設定ファイルに ごにゃごにゃかける程度でいいな
逆にPMとかなら、他で充分な経験があれば、 基本的なことがわかれば充分と言う話もある。
PMにフレームワークの深い知識なんて求められんよ むしろ業務知識とかの方が求められる
案件の基盤技術チームなら FWの深い知識が求められる
雑魚PGならapplicationContext.xmlに書けるレベルでもOKだが
PMはむしろ、自分は何が分かってないか(何を他人に任せるべきか)、 だけは分かっててほしいけどな。 会議で基盤技術チームに「そもそもDIというものはだな・・・」とか 説教始めるのは勘弁。
PMが技術論の能書き垂れるのは最悪だなw
仕事でやってるのなら、よっぽど小さい プロジェクトじゃない限り、複数の人で開発するわけで 他人の書いたソースを読むのは普通でしょ? 他人の書いたソースを読んでることが自慢になると 思っているヤツのほうこそ、お前プロじゃないの?って思うんだけど。
チンケなソースが読めるのと 世界最高峰のプログラマが書いた設計思想が読み取れるのと 雲泥の違いというのがわからん馬鹿
>>578 お前の会社のプログラマって
それぐらいもできないの?
>>579 ではお前はspringのバインドとインタセプターの実装を
具体的に説明できるんだろうな?
実際のコードで説明してくれ
無理だろ こんなカスにRJのコードが読めるワケないってw
読めるってやつが以前にもスレでいたが その後一切音沙汰なしだもんな 複雑な設計思想のspringが解析できるスキルある奴なんて こんなカススレに存在しないよ
インジェクションするだけのフレームワークのくせになんであんな大規模で複雑なんだろうな。
完成したフレームワークを使える程度の 雑魚が調子に乗ってるようだな 使えるのと内部コードを把握できるのと次元が違うのも理解できない雑魚 まぁ土方PGじゃ仕方ないかw
案件の使い捨てPGって将来どうなるんだ?
内部コードを把握できるほどの有能なプログラマなら、 もうすこし技術的に有益なことを書いてくれないかな。
それで優秀な
>>579 さんは
いつになったら説明してくれるんだろうな?w
もう逃げのかな?w
此処の人達にコアの解析なんて無理でしょ 小学生に英語の論文を読めって言ってるようなもんだよw
つまり、その此処の人たちは自分込みなワケか。
底辺PGが集まるスレだろ
読めるとかいう香具師は 最低でも各パッケージの主要クラスの役割を説明してほしいものだ どうせ出来っこないろうが
追っかけてみたが たった数行の登録だけで 凄まじく複雑な処理してるんだな 余りにもネストが深すぎて どこでバインドしてメソッドインターセプト挟んでるのか追うだけでも大変だわ
ジョイントポイントの設定はどのクラスでやってるの?
>>594 ジョイントポイントちゃう!ジョインポイント(join point)や!
join pointに対してAdviceを設定ファイルに書けば スプリングが勝手に構築してくれるのだが 実際のコードを見ると極めて構造が複雑でとても追いきれるシロモノじゃない 読める奴は説明してみろ
別にどうポイントカットしようが知った事じゃないけどね。 ツールオタクになるより重要な事があるだろ。人を使う側の人間なら。
ポイントカットとアドバイス どう違うの?
Struts2での案件が来た さんざん別のフレームワークにしてくれと言ったのに通じなかった 助けてくれ
>>598 ポイントカットに差し込まれる処理がアドバイス
アドバイスが差し込まれる場所がポイントカット
ポイントカットとして選べる場所がジョインポイント
>>599 Struts(1.x)じゃないだけマシ
結局偉そうなことを言っておきながら 誰もコード読んでないのかw
一番偉そうなあんたも含めてな
コード読む人って tomcatとかsendmailとかも全部読んでから使うの? そもそもオープンソース以外のソフトウェアはどうするんだ…
Struts2って全然だめじゃないだろ。嫌がる要素あるのか?
別のフレームワークってSpringMVCあたり?
>>603 sendmailってもう使われてな・・Tomcatは部分的なら読んでる人結構いると思うが。
SpringMVCの導入実績なんて聞いたことないな
Soring とは若干ずれるが、
Struts2 がだめならほかにどんなのを使っているのか、興味がある。
wicket、Click はおもしろいと思うし、Spring 連携機能もあるが、
業務系で使っているのはほとんど聞いたことがない。
# 自分個人で作るサイト、使い捨てプロジェクト内webツールみたいなのではやったことがあるけど。
>>605 おれのまわりでは SpringMVC 使っている案件も結構ある。
「俺の周り」と言われても困ると思うが、、、まぁそんな例もあるということで。
>>606 > Struts2 がだめならほかにどんなのを使っているのか、興味がある。
マーヤじゃね?
あるいはJSFかも
JSFはStruts以上に終わってると思うんだが・・・・ まぁ自分も JSF 1.2 までしか使ったことがないので、2.0 でどう変わったかはあまり知らんけど
jsf案件は見たこと無いなぁ 何が避けられてる原因なのかね? ライフサイクル管理が面倒くさいから?
aopするクラスって 必ずインターフェースを付けないとダメなの?
>>609 サーバ側で色々やりすぎてるせいでクソ重いし
開発環境とのセットで画面を簡単に開発できるのが売りだったけど、
最近じゃ画面系はJSのライブラリで動かすのが定番だし
時代に取り残された感が強い
元ネタのASP.NETも最近はRailsライクなMVC版出してるし
> 最近じゃ画面系はJSのライブラリで動かすのが定番だし javaSprictなんて過去の遺物だろw
javaSprictとか聞いたことないから遺物だったんだろうな
これからのトレンドJavaSprict
プログラマ:出来るだけ鯖側でやろうよ、めんどくさい デザイナ:俺なら全部cssでやれるよ ブログ弄って出来る気になってる人:jsで全部出来るよ
>>617 AOPする対象に
インターフェースつけないと
エラーになるんだけど
619 :
デフォルトの名無しさん :2011/11/10(木) 00:35:48.74
Springで画面作るときの、パターン的なクラス構成ってある? Action,Service,Daoみたな。
Daoだぉ( ^ω^)
何で画面系がDAOなんだよ雑魚w
/ ,/ / / _,..-'' / / /// 〃 ,r'',.-'" // / ,.ィ <´ 〈,/〃/-//-'"/ / ,/__,,..-/ } } ,〉 //" ,r'´ノ ,r'′//-''"二´‐'''~___ノ ,) Y ノ // ,r''´‐''" -='"―-、彡"r'" ̄´ ,イ リ ノ り ,=、、-ニ_~― ~''-=二 ∠"´ ヾ,ヽ 、, , ノノ {.トヾー-~ニ_-二 ― 二ニ==-‐''" ゝ ミィイィ彡`ユ.|`\ヽ丶、‐ __ヽ'''三二,,,_ 〈 `ヾべ_{:::: 'ゥ) `8-、 ヽ‐ 、ヽ`''-_=- ゝ_ノ⌒ヘ~" _”\ ヽ!\ヽ、'''ー-"ニ.._ 〈 (._ |∠ィ ,.ノ / __ハ_j! \ `‐''^ ,. -‐`ヾ__/ヽ. >,、く \ r;>-=<´ 〈 ノ_,. ヽ \ (l》L -―''''"~´ ヽ ` 、 / `、 `、 lヽ / ヽ. l || ! `、 ! !| `、 、 | } V,/ ヽ | / / 〃 \ ヘ_,. -''" / ,.イ′ \ ヽ l / / l | |′,'
DIOだぉ( ^ω^)
>>618 proxy-target-class="true"
インターフェースがなくても、クラスからクラスやメソッド定義を読み取って proxyクラスを作るのが cglib なんだっけ?
626 :
デフォルトの名無しさん :2011/11/10(木) 11:42:23.70
cglibなんて使ってねーだろ! どこで使ってるんだよw springはcglibなんて使ってないぞ
使ってないよ
628 :
625 :2011/11/10(木) 13:13:05.12
どこが依存してるって?w CGLIBも使ってますよ程度のコトしか書いてないんだがねぇw
optionalでも依存は依存だろ。 「CGLIB"も"使ってますよ」と「CGLIBなんて使ってない」が同義だとでも思ってるのか?
まさかとは思うがpomの見方も知らないわけじゃないよな? dependencieがoptionalってことはspring-aop自体をビルドするのにCGLIBが必須ってこと それは依存してるっていうんだよ ただしユーザが実行する時はなくてもいい。AspectJスタイルのAOPしか使わない場合な
>>632 >AspectJスタイルのAOPしか使わない場合な
そんなAOPねーよw
CGLIBを使う使わないのはオプション選択なのは正解だが
>>632 CGLIBだけじゃないぞ
aspectjweaverも依存関係にある
> Spring Roo 別に使わなくてもいい ただのツールだろw 必須でも何でもないただのオプションを何で必須のように言うのかな?w
>>636 必須だなんて書いてねー
AspectJスタイルのAOPを使ってる(Springから見て)アプリの一例としてあげただけ
>>637 > AspectJスタイルのAOPを使って
使い必要あんの?
静的AOPなんでしょ
cglibなんて使ってねーだろ! → 使ってました そんなAOPねーよw → ありました
必要な割には添付されてないんだよな jar達が
添付されてないんだよな →添付されてました。
されてません 残念ながら
されてません → されてました
やっぱ無かった
>>639 SpringとAspectJの連携は解りにくいからね
AOPの定義にAspectJのアノテーションや記法を使うだけで、AspectJのweavingは使わないやり方と
全部AspectJに任せてしまうやり方の2パターンあるし
>>646 よかった、こんなスレでも話の通じる人がちゃんといるんだな
細かく分けると3パターン
・Proxyスタイル+Springポイントカット
・Proxyスタイル+AspectJポイントカット
・AspectJスタイル
>>647 肝心のCGLIBでAOPが抜けてるだろw
>>649 それはProxyスタイルに含まれる
お前>633だろ?AspectJスタイルのAOPがあることは認めたのか?
>>650 別人だが
> Proxyと
> CGLIB
で全然違うぞw
見分けが付かないんでしょw
>>653 > Proxyスタイル
そんな分類するとかアホですか?
AOPをどうやって実現するかで分類すべきだろ
んなこと言い出したらAspectJだって
やってることはプロキシの役割だろ
>>654 > そんな分類するとかアホですか?
Springsourceの人に言ってくれ
> んなこと言い出したらAspectJだって
> やってることはプロキシの役割だろ
違う。だからドキュメント読んでから大口叩けって
Finally, it must be noted that AspectJ does not have this self-invocation issue because it is not a proxy-based AOP framework.
>>654 それはSpringに言えよw
AspectJはクラス自体を変えてしまうからProxyではないような
>>656 プロキシでもクラス自体は別になる
普通のインスタンスとは違う
バイトコードレベルで変更する 点で見るならjava Proxyも同じことをしてると思われる 戻ってきたインスタンスを良く見れば元々のクラス構造とは別になっている$hというのが証拠だ
>>657 そういう意味じゃなくて、クラスそのものを弄ってしまうということ
CGLIBやjavassistで拡張されたものは元のクラスの継承クラスとしてClassLoaderに登録されるけど
AspectJでは、元のクラスそのものが拡張されて登録される
>>658 JDK動的Proxyに元々のクラスはない。実装するインターフェースがあるだけ
java.lang.reflect.Proxy.getProxyClass()を見てみな
Springは元々のクラスが実装しているインターフェースをそいつに渡してるだけでクラスは渡さない
>>660 お前何を言ってるんだ?w
たぶんコードすら追ったことがないんだろうがw
ちゃんとproxyクラスで処理されてるよカス
>>659 > クラスそのものを弄ってしまうということ
言っている意味がわかってるのか?
CGLIBやjavassistのバイトコード操作は
全く別のクラスとして生成されることぐらい知らないようだが
そもそもクラスファイルの構造すら知らないだろうが
>>662 いや、だから別のクラスとして登録されるって言ってるだろ・・・
クラスそのものを云々はAspectJの話だぞ
>>661 日本語が通じないタイプか
コードを追う前に(それもできてるか怪しいが)文脈を追ってからレスしろ
>>660 は
>>658 への返答だ。後はわかるよな?
> CGLIBやjavassistで拡張されたものは元のクラスの継承クラスとしてClassLoaderに登録されるけど 全然違うんだがw 「継承クラスとしてClassLoaderに登録される」って いい加減なことを書かれたら困る
>>665 まちがってるものを「間違ってる」というより
長文になってもいいから正解を書いたほうがいいのでは
>>662 も日本語が通じてないな。
>>661 と同一か
このスレはダメかもしれんね。過疎ってた方がましだったな
たぶん
>>666 は自演だろうな
こういう基地害が湧き出したらスレの終焉だわ
自分の間違いを指摘されたからファビョってるんじゃね?
CGLIBしかコード見てないのに正しいとか言ってる奴がいるんだが javassistは一切検証なしかよ。それで技術者と思ってる?
>>672 Spring AOPはJavassistを使ってないからここで検証する必要がない
以上
>>659 > そういう意味じゃなくて、クラスそのものを弄ってしまうということ
> CGLIBやjavassistで拡張されたものは元のクラスの継承クラスとしてClassLoaderに登録される
ふーん、ハッキリと書いてるのにねぇ
確かにjavassistも元のクラスを継承するって書いてるな 未だに訂正ナシ
Seasar2はJavassistでサブクラスを作ってる
また自演かよw
たぶん一人だろうな
訂正まだですか?
getProxyClassってproxyClassの話してるんじゃないの?
ここのところ Spring スレは閑古鳥が鳴いていたので、 こういう流れとはいえ、スレがにぎわうのはうれしい。 自分も勉強になるからもっとやってくれ
喧嘩しながらでも有効なスレ進行だな
685 :
682 :2011/11/11(金) 15:59:59.13
>>684 実は、おれ
>>625 なんだなw
最初は喧嘩が始まって、なんか申し訳なくなったが、
javassist との流れを読んで勉強になった。
おまいか発端は! でも俺もその辺の知識が整理できて良かったw
687 :
デフォルトの名無しさん :2011/11/11(金) 20:32:35.71
>665 > > CGLIBやjavassistで拡張されたものは元のクラスの継承クラスとしてClassLoaderに登録されるけど > > 全然違うんだがw > > 「継承クラスとしてClassLoaderに登録される」って > いい加減なことを書かれたら困る CGLIBでは「継承クラスとしてClassLoaderに登録される」ってことが 検証されてるから>665と同調した>668は訂正しろ
もういないでしょ
> CGLIBでは「継承クラスとしてClassLoaderに登録される」ってことが それって単なる動的拡張でしょ 継承してサブクラスとして作られてるワケじゃないぞ
動的に継承構造を作り上げてるだけで、 そうやってできたものは、ちゃんとサブクラスになってる。 コード読めよ馬鹿。
各人が勝手なコンテキストで語るから混乱するという典型だね。
SpringはCGLIBのEnhancerというクラスを使っている。
そのJavadoc。
ttp://cglib.sourceforge.net/apidocs/net/sf/cglib/proxy/Enhancer.html Generates dynamic subclasses to enable method interception.
このとおり、これは動的にサブクラスを作る。
SpringはJavassistを使わないが、同時に利用されることが多いHibernateは
JavassistのProxyFactoryを使うこともできて、これもサブクラスを作る。
(ProxyFactoryはHibernateが元々使っていたCGLIBのEnhancerと切り替えて
使えるように追加されたものなので使い方はよく似ている)
SpringやHibernateでの使い方に限定すればこれらはサブクラスを作って
ClassLoaderにロードするので
>>659 は正しい。
ただしCGLIBはEmitter、JavassistはCtClassなどを使うことで、クラスファイルから
読み込んだバイトコードを直接変更することもできる。
このコンテキストでは
>>659 は正しくない。
誰か、各単語(CGLIBとか)がどういったものなのか 簡単にまとめてくれ。 なにがなんなのかわからん。
>>690 CGLIBのコードまで読んだわけじゃないのに
雑魚が語るなよw
>>691 なるほど、そういうことだったのね
JavassistやCGLIBを利用するときは
低レベルでのバイトコード操作がデフォルトだと思っていたよ
・enhancerを使う = プロキシ的に使用する
・ctclassを使う = バイトコードを直接変更する
という理解でOK?
「雑魚」が好きな口の悪い人は役に立つ説明してくれないおね
ところでspring標準はJdkDynamicAopProxyなんだが 何の設定もせずにapplicationContext.xmlを記述すると これに強制選択になるのかな? パフォーマンス上の理由などでCglib2AopProxyを使いたい場合に 明示的に指定することは出来るのかな?
それを何処にかくの?
ん?違うだろ インターフェースが必要かどうかの設定であって CGLIBを使用するかどうかの記述とは違うだろ
最近議論が濃密になってきて嬉しい過疎スレだったのに
mavenの使い方わかんねー
え?メルヘブン?
eclipsとmaven統合したいんだけど 何処見ればいい?
mavenの本が一応でてるが古いな…
なんのこっちゃ
これって jdk1.7 の機能を使ってんのか? コンパイル通らんのだがw
2.5まではJDK1.6でコンパイル通るのに 3系に上げたらコンパイル通らんね、JDK1.7の機能使ってるみたいだ つーか1.7って、まだ正式リリースされてないのに 何で使ってるんだよ?w
>>710 とりあえず3.0.6は使えてるぞJDK1.6.29
3.1系はしらん
3.1.0.RC1はエラーでるわ 安定してないバージョンなのかな?
1.7リリースしただろ。
まだ正式リリースじゃないよね?
これのことだろ
>>710 > つーか1.7って、まだ正式リリースされてないのに
> 何で使ってるんだよ?w
Java7はとっくに正式リリース済みだよ
Spring3.1.0.RC1はJava7のfork/joinを使ってるんだな
Java6ではjsr166yのjarをクラスパスに通せばいいんじゃないか?
oracleのサイトにいったら まだ取得できなかった 開発版いってくれとか書いてあったよ
Java 7 update 1すら出てるけど
あー、Macだけはまだでてないのかw
まだというかOracleはもう出さないでしょ。出るのはOpenJDKのじゃないの。
いや、Oracleから出すと発表されてる。実際プレビュー版があるわけだし もう出さないのはApple
http://java.com/ja/download/faq/java7.xml Java SE 7 を Java.com でまだ入手できない理由
Java の最新リリースは、まず開発者に利用してもらって大きな問題が発生しないようにしてから、Java.com Web サイトでエンドユーザーに公開されます。
--------------------------------------------------------------------------------
とあるんだが
java.comでリリースされて初めて正式リリースじゃねーのか?
開発者を対象に人柱じゃね?
開発専用ダウンロードだろ
一般向けの開放じゃないでしょw
Java.comに出てない=正式リリースとは呼べんな
正式リリースなんてオレオレ用語を使うから混乱する ・Java7は2011/07/28にリリースされた ・java.comでの一般向けダウンロードはまだ Springは開発者が使うものでお前らも開発者だろ? そんじゃーね
一般向けじゃない時点で まだまだバグ等が潜在してる可能性があるということだ 客先のシステムで使えるかね? どんな不具合が潜在してるのかも知れんのに、責任取れんぞ! 自分の開発環境なら入れて使えるが、自己責任だからな
Spring3.1もリリース前なのになに言ってる?w
Spring3.1など実際の案件で使う馬鹿を相手にするなよw
>>728 たしかに一般向けでない状態をリリースとは呼べんな
>>728 そりゃjava7を実際に使うのは
チャレンジャーというよりも無謀だろ
まぁそうだが
最近Springって流行りなの? Springと他になにが流行ってるの?
springどころか java案件さえも聞かないなぁ
業務系ではいまでもJavaが多いと思うけどね。 流行り廃りというより、良くも悪くも、JavaがかつてのVB6と同じような位置になっていくと思う。
.net、PHPが多いな PHPなんぞ、安かろう悪かろうだと思うんだがな 話聞くとメンテできなくて困ってるっての多いし
SpringはあまりみかけないがSeasarはここ2,3年多いみたい
案件で人かき集めるときにスキルシートみてたらゴロゴロいた
>>738 うちの周辺はVB6は.Netになってる感じだな
Javaはサーバサイド以外みたことない
でもSeasarって日本専用みたいな感じでしょ? たとえば海外に発注するときを考えれば、Springの方が良くないか?
ロッドジョンソンがstrutsに失望して 構想を練りに練った結果、生み出された待望のspring mvc しかし spring mvcって洗練されてるとは到底思えんが・・・ strutsに比べて何が優れてるんだ?
view が選べるところ
example-servlet.xmlがないって怒られるんだが この名前って絶対に決まってるの?
>>744 ロジック中に書くのが優れてるのか?w
どこが?
画面のパラメーターを 格納するモデルクラスを一々作るのが面倒なんだが 洗練されてるというなら原始的な人海戦術を要求するなよ
画面作った瞬間に モデルクラスを自動生成されるような仕組みぐらい作っておけよな
>>747 あ、そういう考え方の人なんだね。わからなくはないよ。パラメータを入れる変数を作らずに
ハッシュのキーとして扱えば、いちいち作らなくていい。動的型付け言語の文化はそんなのが多いね。
でも、その考え方は大規模になってくると、影響範囲がわかりづらくなってメンテナンス性が大きく落ちることになる。
「サンプルのためエラー処理を省いています」レベルだと差を感じるかもしれないけど実際の開発では開発効率も大して変わらないんだよ。
なぜなら最初に準備するか、あとでやる(サンプルで省いてる部分)かの違いでしかないから。
具体的な話をすると、君は「パラメータを格納するモデルクラス」と言ったね?
違う。これは受け取るパラメータのインターフェースと考える。(JavaのInterfaceの事じゃなくて)
これがあることで、画面から受け取る値はこれですよ。とコード上に仕様を明確に書くことが出来る。
それ以外の値を受け取らないから、不正なデータを送ってデータ書き換えとかも起こらない。
また変数の型、入力値チェックをアノテーションで表現することも可能になる。
そしてなにより、コーディングの際、変数名入力という”人海戦術”を補完で軽減することが出来る。
パラメータを文字列で扱うとタイポしちゃうからね。
画面のパラメーター(インターフェース)が変わったらときもその影響箇所を即座に把握できる。
モデルクラスの作成はそれらのメリットを得るための、準備と考えればいいよ。
どっちみちパラメータ名を全く入力しないで開発なんてできないんだから、
一度やるだけであとの入力が簡単になる方がいいよね?
>>749 いいたいことはわかるが
ならばstrutsに比べて特に優位性がないな
既に数年も前からstrutsではバリデーション定義で自動的に入力チェックしてくれたり
完成度は高かった
チームでの開発にも充分な機能を提供してくれていた
例に挙げてるような話も含む
そう考えると今なぜspring にする必要がわざわざあるのだ?
素朴な疑問が湧いてきたんだがね
>>748 画面にあるフィールド=モデルのフィールドではないので・・・。
マスタメンテみたいなつまらない単純なフォームならそれでもいいけど、
Ajaxとか使ったリッチインターフェース作るときに、
画面作ったら・・・とかあまり便利さを感じない。
必要なら、自動生成ツール作ればいいし。
コードのテンプレート用意して、パラメータ与えるだけでしょ?
でも自動生成はやってることはコピペと変わらんから好きじゃないけどね。
Railsバージョン○でscaffoldに新しい機能が加わりました・・・って
既存の自動生成コードどうすんのよ? たくさん生成した自動生成コード全部書き換え? みたいなw
>>751 > 画面にあるフィールド=モデルのフィールドではないので・・・。
ほぼ一致するだろ
逆にイコールでないケースの方が稀だ
>>750 考え方の違いかな。
strutsはWebアプリケーションフレームワーク。
ウェブがあってそこからパラメータが渡ってきて、
それを使うため、strutsのコンポーネントを継承して作った
コントローラからデータを読み書きして・・・って
まあこんな感じの開発でしょ?これだとテストがしにくくなる。
テストしやすいように部分ごとにPOJOで作ってロジックを作り上げて、それをspringでつないで
最後にウェブ用のインターフェースを作る。(ついでにスマホ用REST APIも作るw)みたいな
やり方だと、ウェブ用のインターフェースに必要な機能は少なくなる。
となると、strutsは余計な機能てんこ盛り。ってなっちゃうんだ。
もともとstrutsだけで全部作れるようになってるから、何でもできちゃう=アーキテクチャ的に
良くない書き方もできてしまう。(ロジックからセッション直接弄ったり、各クラスの責務がごちゃごちゃしてるもの)
そこらへんを見なおして、Springベースで綺麗な設計にしたのがSpring MVCだと思うよ。
>>749 >>753 4年前の俺がいる
まぁ何でもかんでも DTO(Data Transfer Object)があれば
タイプセーフにできるけど、納期と規模と人数とのトレードオフだな。
「Spring は綺麗な設計」はその通りだと思うが、
綺麗な設計 と 簡単/速くできる はイコールではない。
まぁ「考え方の違いかな。 」
755 :
デフォルトの名無しさん :2011/11/17(木) 22:23:59.97
画面遷移情報をbean定義ファイルに書くのはいいんだが コントローラーの同じ属性レベルに画面jspとコマンドクラスとか対象のビジネスロジックとか 全部同列に定義するのは非常に見にくいと思うぞ strustは <action path= の中に画面遷移情報を書くから 非常に見やすい
>>754 急がば回れって知ってる?
俺は静的型付け言語から始まって、動的型付け言語を使って、
それでも静的型付け言語の方が最終的には納期が
短くなると結論づけた立場だから。
まあ、見切り発射で最初から最後まで終わる様な所ならそれでいいんじゃない?
納品して糞コードとお別れ出来るなら、最初に作る意味は少ないかもね。
こっちは、ずっとメンテナンスしていかなきゃならないものを作ってるからね。
>>755 > コントローラーの同じ属性レベルに画面jspとコマンドクラスとか対象のビジネスロジックとか
> 全部同列に定義するのは非常に見にくいと思うぞ
どんなフレームワークでも、正しく使っていれば分かれてるだろw
758 :
デフォルトの名無しさん :2011/11/17(木) 23:42:30.40
>>756 >急がば回れって知ってる?
これ、もう10数年前に通り過ぎた(w
>>757 > どんなフレームワークでも、正しく使っていれば分かれてるだろw
馬鹿がいるようだなw
たぶん
>>755 の文意が読み取れないような猿のようだw
>>759 そうだね
こういう馬鹿は文章さえも読めない落伍者だからスルーで良いんじゃね
たぶんspringさえマトモに使えないカスだろうし
また喧嘩が始まったのか
本人以外誰もわからん文章を書いておいて、 わからない奴が悪いとか言い出すようなやつだからな。
>>755 確かにspringはごった煮的な感じがするね
きたならしい設定ファイルになりそうだ
>>755 同意
これがわからない人はMPCやったことない雑魚だと思う
springを理解出来ないおろか共ばかりw
誰にもわかってもらえないなんて(´・ω・) カワイソス
>>765 無知で恥ずかしいが質問。 MPC ってなに?
MVC ではないよね?
commandClassと書くのに 実質はモデルクラスなのは変だな
>>769 FormBeanと名前を変えるべきだと思う
>>769 しかも固定フィールドだしなw
どうなってんだか
どんなのがいい設計なん
>>769 名前がコマンドって何だよw
オワコンじゃねーかw
>>772 Strutsの方が綺麗な設計だと思う
素直に
spring jdbcって使うメリットがわからん
>>776 sql直接書くだけならpure javaでやるほうが良いよね
何のメリットもないと思うよ
ん? springってpure javaを便利に使えるようにするための フレームワークなんだけど。 springがでてPOJOが有名になったでしょ。
http://ameblo.jp/aac-sandi/entry-10041703889.html Hibernateに代わるO/Rマッピングフレームワークにおいて、
SQLをゴリゴリ書くタイプとしてSpringJDBCがあるので紹介する。
その名の通り、Springフレームワークとの連携が容易なO/Rマッパーである。
SQLをゴリゴリ書くタイプとして
SQLをゴリゴリ書くタイプとして
SQLをゴリゴリ書くタイプとして
SQLをゴリゴリ書くタイプとして
SQLをゴリゴリ書くタイプとして
>>778 変なFWを使うとエラー時に問題の切り分けが難しくなる
中で何をやってるのか不明だしな
まだエラーが出れば解決が早いが
エラーでなくて、意図した動作と違う動きをした場合の解決が極めて難しくなる
普通のjavaのjdbc直書きの方が安心だな
>>780 SPRING JDBCなんて使ってる案件は無いって
単なる遊びだよ
Spring MVCもSpring JDBCもバリバリに使っています(´・ω・`)
今Springを開発で使うとしたら、Struts2かSpringMVCあたりが定番なのかな? DB周りはHibernateかiBatis? Java開発から離れているから最近の傾向とかよく知らない
>>780 > 変なFWを使うとエラー時に問題の切り分けが難しくなる
> 中で何をやってるのか不明だしな
だから中=POJO=Pure Javaなんだが・・・
SpringはPure Javaを使って開発するものだぞ。
普通のJavaのJDBCを使いたいのなら 使えばいい。Springの担当はそこじゃないので Spring + JDBCでもぜんぜん問題ない。
>>782 使うメリットがない
君は上の技術担当が決めたのを使ってるだけでしょw
自分がSpringを選択しました(`・ω・´)
SpringJDBCてSimpleJdbcTemplateとかのこと?
どういうメリットがあっての選択なんだ? まさか適当に選んだんじゃねーだろうなw 流行ってるから とか言い出しそうで怖いなw
>>789 適当に決まってんだろ
他フレームワークに対する優位性とか説明できると思うか?
・DBのコネクション周りの処理がラク ・@Transactionalとの併用がラク ・SimpleJdbcTemplate, NamedJdbcTemplateにあるようなメソッドを自分で実装しなくていい とかじゃね いらないと思うならSpringのコミッターに 「これいらねーから次から外してくれ」とでも言えばいいんじゃない
spring案件って そのままspringフレームワーク使ってるの? それともspringを拡張してspringの上に乗せるような社内フレームワークを構築して それを使ってコーディングしてるの?
spring を拡張って言った場合、Spring のコード自体に手を入れてなんちゃって意味なのか そうでないのかで答えが違うと思うが。 ある程度の規模のもの作れば、なんらかのフレームワークにはなるだろうけど Spring 自体に手を入れてるところはそうそうないんじゃないかと想像。
「springを拡張してspringの上に乗せるような」って言ってるんだから、 Spring それ自体の改造って話じゃないだろ。 自分でインタセプタを作ったりしてるかというような話だろ。 実際、「Spring を使ってる」というっても、Spring をつかって構築された フレームワークを使ってるだけで、DI機能は自分たちでは、 何も使ってないってケースもかなり多いような気がする。
DIの特徴として フレームワークを使って作ったものが フレームワークに依存しないってのがあるんだけど。 つまりSpringとフレームワークは完全に無関係のものになる。
>>794 > Spring のコード自体に手を入れて
既存の完成されたフレームワークを弄るとか
そんな馬鹿聞いたこと無いぞw
>>795 DI機能使わないならSpringを乗せる意味ないじゃんw
>>798 いや、でも、実際問題として、直接は使ってないケースって多くね?
トランザクション管理とか、データアクセスとか、出来合いの機能使うだけなら、
必ずしも自分でインタセプタとか書く必要ないし、 Spring 使うからといって、
無理に DI 使う必要はないでしょ(もちろん、出来合いの機能から間接的には使ってるんだけど)。
SpringでDIを使わないって、 サービスオブジェクトに DAO クラスを setterインジェクションしないとか、 そういうこと? Spring でDI しないっていう状況が理解できないのだが (煽りではなく、どういう状況か教えてほしい)
>>799 > トランザクション管理とか、データアクセスとか、出来合いの機能使うだけなら、
それもDIで管理されてるんだが
見えない所でコンテナベースに動いてるのがspringだよ
AOPは既存のトランザクション使うくらいだが
DIは使いまくる。
>>797 確かにないっすね。
となると社内フレームワークってどんなもんなんだろう。
イメージがわかない。
>>800 ああすまん。
「DIを使う」というのを「依存性注入のコードを書く」という意味で使ってたんだが、
そういう意味で解釈するのは一般的じゃなかったみたいだな。
>>801 それは、
>(もちろん、出来合いの機能から間接的には使ってるんだけど)。
と、どう意味が違うの?
>>802 たとえば俺々XMLスキーマ(<util:*>や<jee:*>のようなもの)を作る、
ApplicationContextAwareやBeanPostProcessorの俺々実装を作る、など。
>>803 生のSpirngを直接使ってても「依存性注入のコードを書く」ことはない。
せいぜいアノテーション付けるくらいだがそれも必須ではない。
Springはnon-invasiveなIoC(Inversion of Control)コンテナ。
お、おう さ、次の話題はなにかな?
助けてくれ〜 エラーが出る Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
org/aopalliance/intercept/MethodInterceptor が無いって 怒られてるのか?
やっぱ英語のサイト読めなきゃダメなのかな? springってアメリカ発だからなぁ 一方のシーサーは国産だからソースとかサンプルも日本語で読める でも導入例も少ないし サンプルのサイトの数も少ないから 何か詰まったときには解決するサイトが少ない⇒結局解決しない
英文読解力は必須でしょ
>>810 SeasarはMLで質問すればほぼ確実に答えてもらえる
解決するかどうかは別として
JSUGにQ&A用のフォーラムかMLほしいね
>>812 日本Springユーザ会 ML あるじゃん
メールの量はとても少ないから、質問流せばすぐに答えてくれると思うよ
>>813 あるのはもちろん知ってるけど、ユーザーグループの運営用みたいで
質問しにくいんじゃないかってこと
流通量も少ないし、別に質問しにくいってことはないと思うよ 他の言語コミュニティと違い、Springユーザ会は親切な方がおおいし
だが現実は最近3年で技術的な質問は今年3月の1件だけ、しかもリプ無し
>>807 みたいにちゃんと環境も作れない人が質問できる場所には見えない
流通量が少なすぎるのも一因だろうけどね
本件のフォーラムで質問した方が早いっていうか 英語必須でしょ? リファレンス英語なんだし。
英語読めない奴はspring諦めろってか?
諦めたらそこでエンジニア廃業ですよ…
こういう技術的な英語の文章って 翻訳サイトにかけても変な訳になっちまうんだよなw
Oracleを神託に訳したり Strutsを支柱と訳したり そんなんばっかりだからワケがわからん訳文になる
ふと思うんだが struts+springでもDIコンテナは普通に使えるよな Actionクラスの中でBeanを利用すればspringのトランザクション制御も使えるし つまりspringMVCは特に必要ないと思われる
>>823 だから、ContextLoaderPluginで
struts+springでも起動時にDIコンテナは普通に使える
と言ってるんだが
当たり前だろう。 strutsとspring mvcは同じ分野の機能を提供しているのだから。 struts + springでも spring mvc + springでも どちらの構成でも作れる。 ただし、strutsはspringを考慮して作られたわけじゃないから 余計な機能があったり、くっつけるための方法が存在したりといろいろ無駄な部分がある。 spring mvcなら最初からspringを考慮しているからシンプル。 頭が硬くなって覚えられないとか、struts以外に対応する余力がないのなら strutsでもいいよ。ただし余計な物があって気持ち悪いだけ。
>余計な機能があったり なんだそりゃ?w strutsほど洗練された最小限の機能は無いんだがね 「余計な機能」とやらを具体的に指摘してみろよ
>>826 struts1、struts2、
どっちがいい?
struts1で充分だろ
日本語情報ないからstruts1から抜け出せない。 技術不足が原因なんだが、 認めたくないよねw
830 :
デフォルトの名無しさん :2011/11/20(日) 17:42:40.53
難しいな
>>829 おい馬鹿
さっさと
strutsの「余計な機能」とやらを具体的に指摘してみろよ
説明も出来ない馬鹿の分際で
struts2を進めて更に余計な機能を付与したいのか?w
矛盾しまくりのボケがw
>>831 > おい馬鹿
> 矛盾しまくりのボケがw
このあたりが余計かな
>>831 指摘内容は正しいが
もうちょっと丁寧にw
>>831 Red Johnsonの考えという話でいいなら、少し古いけど
"Expert One On One J2ee Design And Development"の12章4節あたりから書いてある
英語版はpdfが落ちてる、日本語翻訳版は古本屋さがせばある
まあ、上の時点でSpringはまだリリースされてないし、Strutsも1.1ベータなんで
今の事情が知りたいなら本家フォーラムで質問してみたらいいんじゃない
はぁ?
俺は
>>825 の馬鹿に直接詰問してるんだがw
なんで英語のPDFを読まなきゃならんのだ
さっさと答えろよ
>>835 50pもないからスグ読めるよ
暇つぶしにどぞ
そもそもURLもない時点で話にならんww
springトランザクションって実際に使ってるの? 直接コミットしたり例外処理でロールバックした方がすっきりするんだが
えっ
宣言的トランザクション使いたいだけで使ってる。 ストラテジーパターンとかモッククラスと入れ替えで 使うだけなら別にDIなくてもいい。
DIが便利なのは、 あるクラスから、別のクラスを利用しているとき、 その別なクラスを、テスト用のクラスに簡単に置き換え可能なところでしょ。 たとえばクラスにprivate HogeHoge hoge;ってあったとき、 privateなのに外部からDIでオブジェクト入れ込めたり、 テストではそのままでテスト用オブジェクトを入れ込めたり。 パブリックにする必要がないものを、しなくていい、 テストのためにへんなことしなくていい、理想通りのクラス設計が出来る。
> たとえばクラスにprivate HogeHoge hoge;ってあったとき、 > privateなのに外部からDIでオブジェクト入れ込めたり、 おまえprivateにする意味が全然わかってねーだろ 外部から値をいじられたら困るからprivateに設計してるのに なんでDIで弄ろうとするんだよ
>>842 privateにするのは、アプリとして動かしているとき。
テストを実行しているときは、アプリとして動かしているわけじゃないので
その前提は覆る。
立入禁止と書いてあっても、それは一般人のためであって、
調査をする人は入るんだよ。
そもそもなんでSpringにprivate変数に値をインジェクションする機能が
テスト用ライブラリの一機能として用意されてると思ってるんだ?
使うためだぞ。
>>843 privateアクセスの
テスト用ならJUNITでやればいいだろうがw
なんでDIじゃないと出来ないとか思ってるんだよ底辺w
845 :
840 :2011/11/21(月) 01:46:30.57
趣味グラマーのソースにストラテジーやモックの挿しかえる種類は ごくわずかしかない上にユニットテストなんて全くしないんで トランザクション境界だけspringでオブジェクト作ってます。 CDIもトランザクション管理するならEJBコンテナ必須でしょ? 設定ファイルの形式がころころ変わるJBossとか嫌だもんね。
馬鹿がいるみたいですね privateテスト用にDIのトランを使うとか 言ってる幼稚な頭のなかを見てみたいですなw
目的を満たせばなんでもいいだろ
>>844 JUnitにprivateにアクセスする機能はないぞ。
使ったことがないなら無理するなよ。
テストが必要なら private にせずクラスに切り出して interface定義してテストしようぜよ。
>>848 >
>>844 > JUnitにprivateにアクセスする機能はないぞ。
> 使ったことがないなら無理するなよ。
www
どんだけ素人なんだよwww
w
>>849 一匹の厨房相手にするのは止めようぜw
言ってることが支離滅裂だし
時間の無駄だわ
>>845 > トランザクション境界だけspringでオブジェクト作ってます。
トランだけというのは嘘で
実際にはJDBCオブジェクトもspringの提供するやつを使ってることになる
っていうかSpringに、private なフィールドへの変数【オブジェクト】を設定できる機能なんてあるの? Java Security とかをのぞいて? Spring だって、直接 private なフィールドへはアクセスできないから、 setter メソッド経由で setter インジェクションしたり、 コンストラクターインジェクションして設定するんじゃないの?
あほがいるなw 教えないでおこうwww
リフレクションがprivateにアクセスできるんだからできるんじゃないの?
しー 馬鹿にヒントすら教えてやるなよ
http://ja.wikipedia.org/wiki/JUnit > JUnitはprivateメソッドをテストできないが、
>>853 > っていうかSpringに、private なフィールドへの変数【オブジェクト】を設定できる機能なんてあるの?
あるのは、privateなインジェクション用の変数に
インジェクションする機能。
> Spring だって、直接 private なフィールドへはアクセスできないから、
> setter メソッド経由で setter インジェクションしたり、
> コンストラクターインジェクションして設定するんじゃないの?
今はアノテーションでインジェクションする。
そのインジェクション先がprivateでも良いという話。
@Inject private Hoge hoge; メソッド書くの面倒だからアノテーションにしてる。
859 :
857 :2011/11/21(月) 08:38:52.17
なんか知らない人がいるみたいだから説明しておくと 今のSpringはインジェクション用のsetterをわざわざ書く必要はない。
>>858 そうそう、それが出来るようになったのはいいが、
privateだとテスト用に別のオブジェクトをインジェクションできない。
ってなっちゃうから、Springはその方法を用意している。
861 :
デフォルトの名無しさん :2011/11/21(月) 11:06:11.86
> privateだとテスト用に別のオブジェクトをインジェクションできない。 ここ変
862 :
853 :2011/11/21(月) 13:08:05.26
javaの作法的には全てsetterインジェクションが望ましいはず。 俺は無視するけどね。
spring、guice、picoはjsr-330のアノテーションでフィールドインジェクションが可能だったような。seasar2はどうなんだろ? 自作するつもりはないから、主要なプロダクトで互換が効くなら、お作法より楽な方法を優先かな。
>>863 そうでもないと思うけどね。
DIが外からインジェクションするからsetterがあるわけだけど、
そもそもの話、インジェクションしないなら
そのクラスの設計にインジェクション用のsetterは必要ないでしょ?
クラスの設計はそのクラスの責務に従って作るべきで、
インジェクションはそのクラスの責務とは無関係。
DI以前ならprivateどころかローカル変数に
インスタンスを生成していたはず。
と考えると、インジェクション先の変数は
privateであるのが自然なんだよ。
議論のレベルが著しく低下してるな ついこの前までFWのコアのバイトコード変換など高度な話題だったのに 今見たらインジェクションをpriavateでとかw どうしてこうなった? いまは雑魚しか寄り付かないような時間帯か? まさかバイトコードの話題の時の人も参加してないだろうな?W
はいはい。煽ることしかできないクズは死んでいいですよー。
>>867 俺もそう思う
この前までフレームワークの中心部の核心に迫るような
技術的にも深いテーマだったのに
最近は幼稚な話題ばかりでガッカリだよ
インジェクションなんて子供かよw って思うわなw
>>867 全くその通りだな
privateフィールドにアクセス出来ないとか騒いでる屑ばかり
どうせ土方PGが暴れてるんだろうが
こういう屑と、技術チームの人とは別の人間と思った方がいいな
スプリングのコードを精査出来る人が最低ラインだろうな まさか設定ファイルを書いて使えます程度の人は参加してないだろうがw どんだけ雑魚なんだよw
>>871 そういう低レベルが参加するとスレの内容も浅いものになるから
遠慮してほしいものだな
同感、もっと深いテーマをすべき
874 :
デフォルトの名無しさん :2011/11/21(月) 23:56:35.08
>>873 マジでそう思うね
コアな話題を語れるレベルの人がスレをリードすればいい
雑魚はいらないよ邪魔だ
876 :
デフォルトの名無しさん :2011/11/22(火) 00:00:34.73
他力本願な文句垂れも雑魚の仲間ってことでFA?
いいからさっさと話題出せよ低能。 煽ってるばかりで、それを指摘されたら 俺もそう思うとか自作自演は見てて恥ずかしいぞw
こうなったらコアな話題を語れる人専用の 上級者スレを作ろう。誰か立てて。
いらねーよボケ
>>879 煽ってる奴に言えよ。
上級者と初心者を混ぜて欲しくないみたいだからさ
知るか ゴミ同士仲良くしろ
誰だ最初に煽ったのか?そいつ死ねよ。
883 :
853 :2011/11/22(火) 00:44:07.58
>>870 すみません
あえていいわけをすれば、setter インジェクションも、
アノテーションを使った private フィールドインジェクションも、方法論であってどうでもよくない?
(ツールで何ができるか、用法を把握しておくべきという批判は甘んじて受け入れるが)
それとも private フィールドインジェクションを使うことによって、何かできることがすごく変わるのでしょうか?
その程度の観点か・・・まあいいけど
>>884 いや、だから セッターインジェクションもコンストラクターインジェクションもフィールドインジェクションも、
本質的にはやりたいことは一緒でしょ?
それとも、何か根本的に違うことがあるの? ってことだよ
根本的な違いはよりシンプルに書けるってところだよ。
なんて書くと釣れた釣れたwってなるだけだから書いておくと、 君、i++とi+=1の根本的な違いがあるのか?って 聞いてるようなもんだよ。 わかりきった答えをわざわざ聞くほうがどうかしてる。 どちらでもほぼ同じことが出来る。が小さな違いはある。 それを選ぶのはあんただ。ってこと。 どうでもよくない?じゃなくて、 どれにするかは、あんたが選べよってこと。
馬鹿があいかわらず 低レベルな会話を続けてるらしいな 消えろ
889 :
883 :2011/11/22(火) 14:35:20.23
>>887 レスどうもありがとうございます。
> 君、i++とi+=1の根本的な違いがあるのか?って
> 聞いてるようなもんだよ。
> どちらでもほぼ同じことが出来る。が小さな違いはある。
> それを選ぶのはあんただ。ってこと。
なるほど、そういう意味か。
あなたの言っている意味が分かりました。
890 :
883 :2011/11/22(火) 14:35:51.10
余談ですが、
>>863 で
> javaの作法的には全てsetterインジェクションが望ましいはず。
> 俺は無視するけどね。
とあるけど、アメリカのカンファレンスで
「POJOs in Action(Manningのin Actionシリーズの書籍の一つ)」の著者の人が、
「コンストラクターインジェクション」が一番好きだ(望ましい)と言っていた。
理由は、
○1:
>>887 の言うとおり atomic であること
○2:
・たとえばあるサービスオブジェクトが 4つのオブジェクトを DI される場合、
setter インジェクションだと、setter を3つしか書かず、4つ目を書き忘れてもエラーにならない。
・しかしそのサービスオブジェクトは、4つともオブジェクトをインジェクション
してもらうことを前提としている場合、コンストラクターインジェクションならば、
引数が4つあるコンストラクタのみを作ればいいので、
サービスオブジェクトのユーザ側に、4つとも渡してもらうことを強制できる
・仕様として、オブジェクト A,B,C までは必須で、D は任意であれば、
引数が3つあるコンストラクタと4つあるコンストラクタの二つを作ればよい
なんてことを言っていた。
作法とかw なんで低レベルな会話ばかりするんだよ 消えろ
みんな無視してるなw
>>890 その条件ってアノテーションで定義できないのかな?
>>891 幼稚園児を相手にしてもしょうがないでしょw
本当にレベルが落ちたねぇ・・・
>>891 本当ですね
ガッカリです。もうちょっとマシな議論するかと思ってました
ところが阿呆ばかり寄ってくる始末
どうしてこうなったんでしょうか?
いやーほんと、いやーだめですね。 いやー馬鹿ばかりですね。
>>895 低レベルの雑魚をスルーするのが一番大事だな
高度な話題のみに専心しよう
そうそう、高度な話題以外みんなスルー スルーするー するするるー
荒砂ボケ するするるー
このスレは我々高度な Springプログラマが占拠した 抵抗は無意味だ。
高度な話題 さもなくば 雑談を
高度な会話いがいは スルーしましょう
荒らしている所邪魔しますよ。 質問してもよろしいですか?
よし、みんな スルーの準備だ!
じゃあいいです。
よしっ! スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー スルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルースルー
こうどなかいわ これが一番大事です
光度中居は 高ですか?わかりませねん。
パペピプパペピプパペピブポー カンフーキックだパペピぷぽー
うっひゃー高度なオナニーきんもちぃいいいい!
どうして 高度な会話ができない 馬鹿ばかりなんですか? 脳みそないの?w
まともな話題なら、みんな本スレでやってるよ。
ここがスプリングの本スレだろw どこにあるんだよw
すげー高度じゃん。 ついていけねーからって、嫉妬すんなよな!
ここで暴れてたSpringソースを暗記している 脳内技術チームなんたらは解雇されたらしい
えらく分かりにくい喩えだな
さて
>>918 は高度な話題でしょうか?
違いますねw
低脳がチンケな話題ばかり どんだけ低レベルなんだ?恥ずかしくねーのか?w
言いだしっぺの法則からいくと
>>920 が話題ふらなくてはいかんですたい
まったく高度なテーマは一つもねーのかよ 雑魚ばかりでつまらんすれだ
じゃ、少しは考えるお題でも Springの学習コストを推定してください。 前提も含め妥当な判断ができるか問われています
>>923 馬鹿だなw
市ね化す
コストだと?www
おまえの程度が知れてるわwww
本当の実力があればコストも糞もねーよ
おまえにFWコアを書ける力あるのか?w
雑魚がww
消えろwww
>>923 あなたのような初心者は
せいぜい設定ファイルが書ける程度でしょう?w
その程度なら一ヶ月もかからないでしょうが
スプリングのコード・パッケージを全部網羅するぐらい把握したいのなら
高度なスキルが要求さまますね
所詮、初心者の君には到底不可能ですがねw
諦めなさいw
>>923 スキルもないのに
学習しないほうがいいよ恥かくだけだから
ロッドジョンションの設計思想もわからないような底辺PGが学習してなんになるの?
>>926 そうだな
高度なスキルもないような阿呆が
学習しても無駄だな
土方PGを増やすだけの悲しい結末が見えてるw
このスレは見積もりもできない落第生だらけでした
答えがあることしか答えられない輩増えてるみたいだな 答えがだせないから逆キレ
>>925 コアスキルのない落第生の悲しい性だね
所詮はロッドジョンソンのような超一流の設計者にはなれないんだよ
>>927 高度なスキルが一番大事だな
それがあればシーサーも短期間にモノにできるし
JBOSSのFWもモノにできる
しかしスキルのない底辺どもは何をしても無駄だなw
いっしょうけんめいべんきょうして コードを全部網羅するほと把握しましたがその知識を活かす場所がありません。 投資コストがムダに思えてきます 高度な話題があれば少しは溜飲もさがるのですが
↑おまえら
だいたい スプリングのコアコードを把握できるほどのスキルがあるなら 案件の技術基盤チームなどに引っ張りだこだ どこに行っても通用するスキルだ それに対して 学習コストとか言ってる底辺の土方PGどもwww 消えろww
セッターゲッターのインジェクションとかwww そんな低レベルな会話しか出来ない雑魚www 工場の流れ作業員みたいだなwww
Springを使う効果 ・劣等感とその反動の煽り習慣が人格にインジェクトされます ・言葉使いが卑しいソレになります
>>935 > スプリングのコアコードを把握できるほどのスキルがあるなら
> 案件の技術基盤チームなどに引っ張りだこだ
> どこに行っても通用するスキルだ
その通りですね
スプリングのコアコードを理解できる人のみが「真の技術者」です
理解できない者はピラミッドの底辺で土型PGとして生きていくしかないでしょうね・・・
>>938 一部のコア技術者と
大多数の底辺PG
まさに社会の縮図をみるようだな
Springのコード簡単だろw どこからその根拠のない自信が
では具体的に どうやってバインドするか説明してみろ 雑魚ほど よく吼えるw
>>941 どうせ無理ですよ
馬鹿ほどわかった気になってるもんです
コアなコードが何をやってるのか?
どうやってターゲットをバインドして、そしてインターセプトしてるのか?
ここを説明できるひとなど
一握りですよ
>>940 のような底辺の馬鹿が
説明できるワケないでしょうにw
阿呆は放置でヨシですねw
>>942 それもそうだな
雑魚に高度なFWのコアロジックの説明しろ
ってのも無理すぎる注文だなw
さて
>>940 の大口を叩いた阿呆は
ちゃんと説明してくれるのかな?w
それとも涙目で敗走してんのかな?www
しかし底辺のクセに大口叩く馬鹿が増えたなぁ・・・ こういう雑魚は死ねばいいのにね
ホラホラ高度な話題しろよ。 俺はソースコード全部読めるけどな。
いつになったら 高度なテーマになるの?
じゃあここで高度な話題を・・・
>>947 ぷぎゃーw それのどこが高度な話題なんだよw
雑魚すぐるううううううwwwww
はやく高度な話題しろよ
では。わたくしめが高度な話題を。 自称高度な方々が高度な話題を自らふれないのは 高度を志向してはいるが、いかんせん実力不足で 高度な話題を自らふることができないからです Q.E.D.
>>942 ふーん。おまえの周りでは一握りなんだー。そっか。。。
井の中の蛙という言葉があってだな 何を高度と見るかで程度が知れるな
>>950 ふーん。お前にとってはそれが高度なんだw
ま、高度な質問って言ったらバリバリにフレームワークのソースコード読めて 同じようなフレームワークをサクッと作れちゃう 俺のようなやつがする質問だろうな。
お前らみんな、ゴミ虫
荒らしあってる所邪魔しますよ。 質問してもよろしいですか?
>>954 のように誇る姿にあこがれます。劣化コピーを作るその姿に。
では質問。 荒らしている奴は、何が出来るんですか? なにかすごいことが出来るんですか?
今日も底辺どもが 暴れてるなw
高度なテーマのみが スレにふさわしい 低次元の話をする馬鹿は消えろ
>>954 おい、土方A
さっさとPG〜テスト工程やれよw
それ終わったら、また別の案件でPGだぞw
土方PGって哀れだねぇ スプリングの設定ファイルさえも書けるか怪しいんでしょ?w
やっぱり荒らしてるのは、 いつものやつだったか 「土方」という単語で確定した。
内部のコード読んで仕様知るのも大切なことだろうけどさ。 イチを知れば扱えるよう設計されてるわけだし、 それで不自由無くて、内部の実装に別段興味無いなら別に知る必要なくない? ビジネスロジック優先なPG、ライブラリ設計優先なPGは、適正や仕事の領域の違いであって、優劣つけるもんじゃない。
ぶっちゃけライブラリ設計の方が楽だよね
>>967 お前は
案件でPG〜テスト工程しか採用されない土方PGで一生いるつもりか?
いくらでも補充が利くような土方PGと
コアな技術力を評価されて高待遇の基盤アーキテクト
どっちの人生を望む?
>>967 もうひとつ論破すると
ビジネスロジックの元の仕様は
業務SEが顧客からヒアリングして決定する
案件PG達は詳細設計書を見て機械的にコーディングするのみだ
素のSpringで十分なので 自称アーキテクトさまのオレオレFWなど書かないでください ってみんな言ってるよー?
業務知識のないアホが技術基盤チームとか騒いでるだけだろ。 案件のない時代にはそういうやつが真っ先に切られる。
真っ先に切られるのは土方PGだろ
>>970 は高確率でお馬鹿さん
>案件PG達は詳細設計書を見て機械的にコーディングするのみだ
が本当なら自動化して終わりでしょ?アーキテクトならね。
センスないのが滲み出てる。
>>974 おまえって
馬鹿のフリーターなんろうなw
一度も案件に参加すらしたことない可愛そうな妄想ばかに
この業界のことがわかるわけないよなww
すがすがしい程テンプレどおりの負け惜しみだなw
990超えたぐらいで次スレたてておいてね 荒しだろうとそうでなかろうと、需要はあると思うので (立たなかったらおれがたてておくが)
そういうお前が立てろよボケ
日本語が読めない原始人は巣にお帰りください。
>>975 確かにこういう馬鹿いるよね
妄想ばかりして現実を知らない幼稚園児だなw
人として末期な書き込みが多いね。かわいそう。
spring jdbcって どうやってつかうの?
ふう。やっぱりお前ら全員馬鹿だ。 俺を論破できないwww
ソースコード読めば分かるというやつ、 実際に読んでみろ。俺には読んでもわからんかったぞ。
986 :
982 :2011/11/23(水) 18:34:20.68
ググって分かった。 自己完結しました。
いけずなヤツもいるのさ
親切な人がいるかもしれぬ
>>985 まぁ深すぎるからな
俺も解析初めて一ヶ月ぐらいで何とか挙動がわかるようになった
といっても
beanとcoreとaopパッケージぐらいだが
一つ一つのパッケージが 膨大すぎて 処理が複雑すぎて 追いかけ切れんのが実態だな
だよな。Springのソースコードなんて簡単すぎ あれがわからんのは、低能だけだ。
お、高度な話題がはじまったな。
>>992 全部追うのは無理でしょw
技術チームなら必要なスキルだろうけど
土方にはいらない
>>991 それだけでもすごいことだ
ここの雑魚どもはそれすら無理でしょ
>>977 おい990超えたぞ
さっさと次スレたてろよカス
あんだけ重厚でいいのだろか Guiceなんかもっと単純化しようって流れだけど
>>998 拡張しまくりだもんな
肥大化しすぎてロッド・ジョンソンさえも把握してないかも
1000!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。