トップページtech
1001コメント358KB

Java Spring Frameworkを語るスレ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
http://www.springframework.org/

乱立するフレームワークと競合するプロトコルの嵐のなかで、
リスクの高い決断を余儀なくされているJavaデベロッパ、プ
ロジェクトマネージャに対する福音です。

語るべし。
0120デフォルトの名無しさんNGNG
>>119
「わからない」ということがどういうことかわかってないと、「わかりやすい」は難しい。
あの人たちの周りには、「わからない人」というのはいないし、寄ってこないだろうからね。
っていうか、「日本語で書いてある」「ドキュメントがたくさんある」「設定ファイルが単純」ということをもって「易しい」とか「優しい」っていってるだけだね。
「やさしさ」を重要視してるというのなら、「やさしさ」のためにどういう活動や管理をしているか、聞きたいもんだ。
GUIもないのに、「直感的」とか。

MSの、なんも考えずに使える環境とか見てると、やっぱすごく「優しさ」「易しさ」「わかりやすさ」考えられてると思う。
0121デフォルトの名無しさんNGNG
なあ、Javaってまだフレームワーク競争してんの?
0122デフォルトの名無しさんNGNG
>>120
具体的にS2の何がわかりづらいの?
0123デフォルトの名無しさんNGNG
>>81
Apache Mavenならdeployが驚くほど簡単にできるぞ。
まあやってみい?
0124デフォルトの名無しさんNGNG
>>120
GUIのどこが直感的なの?
コマンド探そうとしてアイコンみてもただの絵にしか見えなくて(以下略)
0125デフォルトの名無しさんNGNG
またコマンドライン対GUIネタかよ
とりあえず>>120はvs.netでも使ってろってこった
0126デフォルトの名無しさんNGNG
Maven + Eclipse + MevenideがあればVSドトネトなんていらない。
0127デフォルトの名無しさんNGNG
そもそもJavaにGUIを期待してる時点で(ry
0128デフォルトの名無しさんNGNG
Eclipseは例外。
それどころかこれからはすべてが例外になる。

Swingも著しく早くなってきた。
そしてJavaWebStartの本格普及。
Appletに取って代わる技術だ。
そしてJSFによるリッチクライアントだ。

そしてJiniテクノロジーの普及。
0129デフォルトの名無しさんNGNG
Jiniかよ!
0130デフォルトの名無しさんNGNG
>MSの、なんも考えずに使える環境
そのせいでクソシステムが乱造されてるわけだが
0131デフォルトの名無しさんNGNG
>>120
その単純な設定ファイルを見て、実際にどう処理されるか、わからないと使えない。
こういう場合は、こう使え!という実例があればいいけど、当面期待できそうにない。
DIコンテナとかAOPを力説されても、ひいちゃうな。
0132デフォルトの名無しさんNGNG
>>130
それはクソシステムの乱造とは関係ありません。
0133デフォルトの名無しさんNGNG
AOPとかDIコンテナとかの便利さは使い方はすでにわかってる人に対して、こんな簡単に使えますよ、っていってるんだよね。

断っとくけど、Seasarはいいものだとは思う。わかってれば簡単だし。
周辺技術との連携も充実してきてるから、わかってれば使い易いし。
0134デフォルトの名無しさんNGNG
>>131
>DIコンテナとかAOPを力説されても、ひいちゃうな。
DIやAOPがSpringの売りですが何か?
0135デフォルトの名無しさんNGNG
Springの方は、「優しさを重視」とかインチキくさいこといいながらトップページに概要も書いてない、ということがないからおけ。
0136デフォルトの名無しさんNGNG
Springでいいじゃん。
0137デフォルトの名無しさんNGNG
>>132
だったら.netでちゃんとしたシステム作ってればいいだろ
何も考えずに使えるから何も考えずに行き当たりばったりに作る馬鹿が増えたんだよ
MSマンセーならJava使わなくていいじゃん
0138デフォルトの名無しさんNGNG
>>137
なにかにマンセーになるのは必須なのですか?
.netも、Javaとは別の性格でいいところはいいし、ちゃんとすればちゃんとしたものができるし、Javaでもちゃんとしなければクソシステムができる。
たとえMSマンセーであってもJavaがいいときにJava使うことはいいことだ。
0139デフォルトの名無しさんNGNG
で結局SpringはどうなんだYO
0140デフォルトの名無しさんNGNG
SpringのスレでMSを引き合いに出すのもどうかとおもうがな
0141デフォルトの名無しさんNGNG
統合開発環境として、MSのものはとっても優れてるから。
SpringなりSeasarなりも、いろんな技術を統合するためのフレームワークを目指してそうな気配だから、MSの開発環境並に統合された環境を用意してくれれば幸せ。
0142デフォルトの名無しさんNGNG
その辺はEclipseと比較すべきだろう
プラグインの取り組みはされているようだけど
そもそもEclipseがVS.netのように敷居が低いとは思えんしなあ
0143デフォルトの名無しさんNGNG
SEASERみたいなマイナーなやつに粘着するやつウザイ
もっとSpringの情報が欲しい。実際に仕事で使ってるやつとかの書き込みキボンヌ
0144デフォルトの名無しさんNGNG
Springも充分マイナーだと思う・・・

0145デフォルトの名無しさんNGNG
Springがマイナーとはいわないだろう
J2EEに与えたインパクトは大きいよ
0146デフォルトの名無しさんNGNG
>>142
そこでNetBeansですよ。
NetBeans4.0次第だけどな。
0147デフォルトの名無しさんNGNG
コンテナとIDEのはなしをまぜこぜにしてもなあ
0148デフォルトの名無しさんNGNG
>>145

各種O/R Mappingフレームワークに多大な影響を与えたと思われるWebObjectsは未だマイナーだと思われ。

って言うと信者が湧いてきそうだな。
0149デフォルトの名無しさんNGNG
その代わりTapestryとCayenneが注目されてるからいいんじゃない>WO
0150デフォルトの名無しさんNGNG
>>148
作ったところが作ったところだから。
どんなに広まっても、マイナーということになる運命。
0151デフォルトの名無しさんNGNG
>>141
> 統合開発環境として、MSのものはとっても優れてるから。
M$のVS.NETなんてEmacs + GNU makeと比べたら大したことねえよ。

最近ではEclipseのプラグイン拡張が凄いことになっている。
しかもApache Antと併用できる上に、Apache Mavenという強力なプロジェクト管理ツールが登場した。
こいつもEclipseで使える。

しかもサーバ関係はM$は弱い。Javaのほうが強しだな。
WebServicesで.NETはJavaに敗れたわけだし。
0152デフォルトの名無しさんNGNG
Eclipseのプラグイン拡張は、結局それぞれのプラグインをちゃんと把握してないといけないので、MSの統合環境みたいに、なにも考えなくてもいろんな技術が統合されたものができるというわけにはいかない。
Emacs + makeの場合、ほんとにそれぞれの項目を理解していないと使えない。
それぞれの項目同士の連携は、自分で考える必要がある。

それぞれの部品単位ではMS以外の環境が優れているかもしれないけど、「統合」という点ではMSの環境が優れている。
EclipseもEmacsも、たくさんの機能がひとつの環境から使える、という程度でしかない。
0153デフォルトの名無しさんNGNG
>>152
> Eclipseのプラグイン拡張は、結局それぞれのプラグインをちゃんと把握してないといけないので、MSの統合環境みたいに、なにも考えなくてもいろんな技術が統合されたものができるというわけにはいかない。
アホか。VS.NETにもプラグイン拡張があるぞ。
Eclipseのプラグインの把握はたいしたことがないぞ。
ちゃんとドキュメントは揃っているんだし。説明書をよめばだいたいわかる、どころか読まなくてもすぐに使えるんだし。
開発経験の無いド素人じゃあるまいし、エンジニアがそんなことも把握できないでどうするんだか。

> それぞれの部品単位ではMS以外の環境が優れているかもしれないけど、「統合」という点ではMSの環境が優れている。
> EclipseもEmacsも、たくさんの機能がひとつの環境から使える、という程度でしかない。

どこをどう統合したんだか。
VS.NETは2004になってからやっとリファクタリングなどのような
Eclipseに追いついた機能を手に入れたんだし。
0154デフォルトの名無しさんNGNG
>>153
WebサービスしらなくてもWebサービスつくれちゃうとか。
データベースのテーブルデータを取ってくるのをWebサービスにしてVBに貼り付けとか、簡単にできた気がする。
StrutsものにしてもHibernaterものにしても、それぞれが何かをちゃんと把握してないと使えない気がする。
Eclipseではなくて、Javaの問題なんだけど、そういったそれぞれのコンポーネントが縦割りで独立していて、連携をとるのに知識が求められる。
MSの技術は、それぞれは大したことないんだけど、それぞれを意識せずに連携できる。

それを解消しようとするものとして、Springがあるんだろうけど。
0155デフォルトの名無しさんNGNG
>>154

> WebサービスしらなくてもWebサービスつくれちゃうとか。

それもどうかと思うが

> それを解消しようとするものとして、Springがあるんだろうけど。

それも違うような気がするが
0156デフォルトの名無しさんNGNG
>>155
そう?
StrutsやらHibernateやらのアーキテクチャの違いを、IoCを介することで一貫性を保ちやすくする、という目的もあると思うんだけど。
0157デフォルトの名無しさんNGNG
上手く説明できないが違和感を感じる>IoCを介してアーキテクチャの一貫性を保つ
0158デフォルトの名無しさんNGNG
>>157

違和感を感じる にも違和感を覚える。

0159デフォルトの名無しさんNGNG
このスレで一番参考になったレスかもしれない
0160デフォルトの名無しさんNGNG
>>157
SpringではSpringDAOとかSpringORMとかSpringMVCとかで
SeasarではS2DAOとかS2HibernateとかS2Strutsとかで

なんか、統一的な利用方法を提供しようとしてると思う。
基本的にJavaWorld2004/7の受け売り。
0161デフォルトの名無しさんNGNG
>>160

>SpringではSpringDAOとかSpringORMとかSpringMVCとかで
>SeasarではS2DAOとかS2HibernateとかS2Strutsとかで
これではアーキテクチャは統一されていないよね?
単一のフレームワークにて、ORMやJDBCフレームワークが利用できるのも統一的な利用方法とは
言えないのでは?

プレゼンテーション-ビジネス-パーシステンス層、全てにおいてIoCをベースとしたフレームワークを
利用できる為、アプリケーションにおけるアーキテクチャの統一性がはかれる。
またIoCを介することで、アプリケーションが個別のフレームワーク(Struts,Hibernate・・・)を意識しなくて
よいアーキテクチャを設計しやすくなると漏れは思っているがどうよ?
0162デフォルトの名無しさんNGNG
S2ネタはこっちでどうぞ
国産オープンソースDIコンテナSeasar V2(S2)
http://pc5.2ch.net/test/read.cgi/tech/1092044210/
0163デフォルトの名無しさんNGNG
1.1もでたことだし
0164デフォルトの名無しさんNGNG
ところで、SpringStrutsを使うとき、struts-configやapplicationContextをXDocletでは管理できんですか?
0165デフォルトの名無しさんNGNG
未だになんでSpringがいいのか全然分からないんだけど。
あんな別途にXML書いてアホかと思う。利点が見えない。
誰かSpringの利点が書いてあるリソース教えてください。
それか語ってください。
0166デフォルトの名無しさんNGNG
利点が見えないのはアホかと思うが、XML書いてアホかと思うのは同意しまくり。
SpringStrutsなんか使った日には、XDocletも使えず、struts-configとapplicationContextを書き換える必要がある。
かなり間違えやすそう。
テストが楽になるとはいうが、XML定義が正しいことのテストはどうするのさ?

利点はここでも見てろ。
http://wiki.bmedianode.com/Spring/?Spring+Framework

ようするに一極集中ってイイね、という話だ。
0167デフォルトの名無しさんNGNG
DIはEoDではない、と思われ。
0168デフォルトの名無しさんNGNG
>>165
Spring + Struts + Hibernateのコード書いてみたが、コード自体は非常にすっきりした。
いかにオブジェクトの生成・保持・伝達にコードが必要だったかわかる。

だから、逆に、Struts+HibernateでDI使わないとすると、あんないろんな場所でオブジェクトの生成取得コード書いて、必死に受け渡しして慎重に保持するのを見るとアホかと思う。
ということが言えるかもしれない。
0169デフォルトの名無しさんNGNG
そもそもWebインターフェースで複雑な業務を扱うのはいかがなかものか、と。
0170デフォルトの名無しさんNGNG
>>169
一般向けだと、現状Webインターフェイス以外の選択肢はないと思うが。
0171デフォルトの名無しさんNGNG
この本、
今現在webl○gicとN○Lの訳わかんねーフレームワーク使ってムカつきながら巨大webアプリ作ってるおれは
素直に感動した。

【軽快なJava】
ttp://www.esbooks.co.jp/books/detail?accd=R0035714
0172デフォルトの名無しさんNGNG
web10gicの変数名クラス名がやたら癇に障る
0173デフォルトの名無しさんNGNG
>>171
おれもその本買ってきた。J2EEはプログラマーの臨界点を超えて
複雑すぎるんじゃないかと思ってたのをそのまんま明快に書いてて
楽しい。
0174デフォルトの名無しさんNGNG
しかし、翻訳者がきらい。
へんな「翻訳者注」ない?
0175デフォルトの名無しさんNGNG
>>174
うむ、翻訳者がいけてないのは事実。こんなとこに訳注はいらんわい、
てなところにまで訳注があって、しかも日本語が意味不明。

最初、翻訳文なんで原文が意味不明なのかと思ったら、「訳者注」とか
書いてあるんでびっくりした。
0176デフォルトの名無しさんNGNG
えー、そうなの?
0177デフォルトの名無しさんNGNG
岩谷か。。。orz
0178デフォルトの名無しさんNGNG
>>171
よさげな本じゃな。
翻訳者には期待できないことを覚悟したうえで 
買って読んでみるか
0179デフォルトの名無しさんNGNG
おれ岩谷の名前を意識したことなくて、今回あまりの訳注の多さに
びっくりしたんだが、ぐぐってみるとすごいのな。いやびっくり。
0180デフォルトの名無しさんNGNG
軽快なJava読んだよ。
でも、はっきりいって Spring Frameworkスレの住人にとって、
今更技術的に役に立つことはないかも。

EJBっていけてないじゃんと思ってるけど、それを口に出すと
「お前がデキないだけ」
「お前のやってる案件が小規模なだけ」
と煽られてストレス溜まってるヤシが、自分の考えを再確認するには
いいかもしれない…
0181デフォルトの名無しさんNGNG
こんな感じのリストを、プロパティじゃなくbeanとして定義することってできますか?
  <list>
   <bean class="org.apache.struts.util.LabelValueBean">
    <constructor-arg index="0"><value>いらない</value></constructor-arg>
    <constructor-arg index="1"><value>0</value></constructor-arg>
   </bean>
 </list>
0182デフォルトの名無しさんNGNG
>>180
>軽快なJava読んだよ。

SF小説ですか?
0183デフォルトの名無しさんNGNG
話題についていってない人はっけーん。
っつうか、10レス上くらい読めばいいのに。
0184デフォルトの名無しさんNGNG
ぼけたつもりなんだろ>>182
いじめてやるなよ
0185デフォルトの名無しさんNGNG
定義ファイルだけど、同じクラスの定義を何個も書くの面倒。
値だけ異なる複数のBeanを定義する方法ってあるの?
例えば、商品クラスのインスタンスを4つ作るみたいな。
0186デフォルトの名無しさんNGNG
>>185
コピペ
0187デフォルトの名無しさんNGNG
Springからファクトリでクラスをロードするとき、
プログラムからコンストラクタに引数ってわたせない?
HttpRequestわたしたいんですが
0188デフォルトの名無しさんNGNG
>>187
あとで渡せばいいじゃん。
0189デフォルトの名無しさんNGNG
Spring + StrutsのActionをテストするにはどうするのがいいんだろう?
StrutsTestCaseは使えないし。
0190189NGNG
ごめん、StrutsTestCaseで問題なかった。
JNDIデータソースが使えないのが困るだけだ。
0191デフォルトの名無しさんNGNG
>>185
共通プロパティを持つ基底ビーンを指定できたら便利だな。
0192デフォルトの名無しさんNGNG
ProxyFactoryBeanを通すと生成されるオブジェクトが全部
シングルトンになっちゃうんですが
回避策はありますか?
0193デフォルトの名無しさんNGNG
確認してないが、そんなことはないと思うが。
どっちかでsingleton=trueのままなんじゃないの?
0194デフォルトの名無しさんNGNG
SeasarとSpringの違いってナニ?
0195デフォルトの名無しさんNGNG
Spring
メジャー
関わる人が多い
ドキュメントが揃っている
たぶんメインストリームになる

Seasar
日本ローカル
そこらへんで開発してる
構成ファイルがシンプル高機能
たぶんマイナーなまま
0196デフォルトの名無しさんNGNG
S2OpenAMFは使いたいと思ってるんだが
0197デフォルトの名無しさんNGNG
Seasar関係者が、自身の日記上でちゃんねらーに宣戦布告。
Seasarスレに本人降臨
http://pc5.2ch.net/test/read.cgi/tech/1092044210/
0198デフォルトの名無しさんNGNG
2つのappcalitionContext.xmlを読み込んでいるんですけど、
1つめのxmlファイルで、あるbeanのpropertyにlistをセットして、
2つめのxmlファイルから、その1つめで定義したbeanを呼び出して、
更にlistに要素を追加することって可能でしょうか?

このビーンはシングルトンです。
0199デフォルトの名無しさんNGNG
>>198
xmlファイルはどうとでも分割できるから、一つの定義でかけるならできるんじゃないの?
0200デフォルトの名無しさんNGNG
>>199
それが少々複雑なケースで、最初の1.xmlでhibernateで使用する
hbm.xmlをリストでもつLocalSessionFactoryBeanを定義して、
次に読まれる2.xmlで、更に他のhbm.xmlを追加したいような感じです。

で、更に2.xmlでリストに追加したいhbm.xmlの設定は1.xmlで指定した
hbm.xmlのpojoをmany-to-oneで参照しているんですよね・・・

それで2.xmlを読み込む際に1.xmlで追加していたはずのhbm.xmlファイルが
ないよみたいなエラーが出るんですけど、やっぱこれって普通に無理なんですかね?
0201デフォルトの名無しさんNGNG
>>200
普通に無理というか、普通にDIを誤解しているだけだと思われ。
Bean定義の継承ができるかどうか、という話だな。
欲しい機能だけど、できるかどうかは知らない。
いまリファレンス読んでる最中だから。
0202デフォルトの名無しさんNGNG
parent属性使えばBean定義の継承はできるようだけど、listに追加というのは難しそうだな。
parent属性は型が違ってもいいので便利。
複数のparentを持つにはどうすればいいのかは不明。
0203デフォルトの名無しさんNGNG
http://www.ozacc.com/library/
のSpring Framework Mail Extension使ったことある人いる?
Velocityを使ったVelocityMailMessageだけオリジナルを元にコピーする
コンストラクタがついてなくて困ってるんだけど。
Springでこれのインスタンス生成してビジネスロジッククラスにセット。
そのままVelocityJavaMailSenderに渡したら
マルチスレッドでごっちゃになってまう。

Singleton=falseにすればいいんだろうけど
その場合ビジネスロジック内にApplicationContextからの取得ロジックを書くことになって
ビジネスロジックがSpringに依存してしまう。
スキルありそうな人だからこれでも普通に使えると思うんだけどどうやればうまく使えるかな?
0204デフォルトの名無しさんNGNG
Spring+Strutsを使うと想定した場合に
サービスクラスとして
FooService implements IFoo
を定義して、
テスト用のサービスクラスとして
FooTestService implements IFoo
のようなものを定義することになると思いますが、

テストごとにテスト用のサービスクラスを変えることって
簡単にできますか?
Cactusと組み合わせた場合とかにデプロイごとに設定ファイル
変えるようなことになってしまわないですか?
0205デフォルトの名無しさんNGNG
>>204
できる。
テストケースによって読み込むconfigファイルを変えるだけ。
0206デフォルトの名無しさんNGNG
http://www.amazon.co.jp/exec/obidos/ASIN/0764574833
0207デフォルトの名無しさんNGNG
じゃ漏れも貼っとくか
http://www.amazon.co.jp/exec/obidos/ASIN/1932394354
ってたけーよ!
0208デフォルトの名無しさんNGNG
> 207

まあ、元がイングランドで発売(ポンド->円換算)だからね。。
Professional Java Development with the Spring Framework
の方は、まあ買える値段なんだけど、、、
0209デフォルトの名無しさんNGNG
SpringTestCase

ttp://blog.ozacc.com/archives/000862.html

本家のAbstractDependencyInjectionSpringContextTestsより使いやすそう。
(っていうかこのクラスCVSからとってこないと動かないし・・・・)
0210デフォルトの名無しさんNGNG
>>208
めっちゃ亀レスだけど、
amazon.co.jpはポンドとドルのときがあって、
ポンド換算のときはなぜか高い。

ドルになったときに購入するのがおすすめ。
0211デフォルトの名無しさんNGNG
日本語版☆⌒ 凵\(\・∀・) まだぁ?
0212デフォルトの名無しさんNGNG
英語版でいいから欲しいなぁ。。
0213デフォルトの名無しさんNGNG
Introduction Advice でわけわかめな状態に。

ttp://d.hatena.ne.jp/koichik/20040408#1081424192
この例で言うところの one や two って
もともとのクラス実装(study.Foo)に
ComparableIntroductionInterceptor の実装が足されたものと理解してるんですけど
実際 study.Foo の機能使うときってどうすりゃいいんでしょうか。
one, two に対して単純にキャストするだけでは例外出ちゃうし。
0214デフォルトの名無しさんNGNG
(スレ違いだと思うけど、他に書くとこないんで)

PicoConatiner 1.1出ました。
http://www.picocontainer.org/Download
0215デフォルトの名無しさんNGNG
>>214
Dependncy Injectionを語るスレ
http://pc5.2ch.net/test/read.cgi/tech/1099827125/
0216デフォルトの名無しさんNGNG
XML がソースそのものだと言ったが、もうひとつ。

 DI 廚 = マップ廚

分かるか?実行時解決マンセー!?
どっかでソースコード自動生成はもはや時代遅れで実行時バイトコード
生成マンセーとかいう香具師もいたな。何が犠牲になってるかも分からずに
実行時なんたらって言いたいだけちゃうんかと。

なんなら俺が DI + II(Implementation Injection)コンテナでも作ろうか。
コードはもはやインタフェースのみで意識するのは界面仕様のみ。
実装コードは不要。依存性と実装はおまいらの大好きな XML に。
実装の取り替えはもちろん、いつでも修正可能だ。理想的だろ?
0217デフォルトの名無しさんNGNG
>>216
必死ですね。だんだんかわいそうになってきた。
何が犠牲になってるの?
マップ厨のときはORM無条件に不要といってたから厨だったんだけど、java.util.Mapでマッピングすること自体は、特に問題ないと思われる。
というか、無条件にDIダメといってる文脈がマップ厨の人と同一人物くさい。

> なんなら俺が DI + II(Implementation Injection)コンテナでも作ろうか。

別に、DIのしくみだけで十分同じことが実装可能なので必要ないけど、面白そうだから、作ってくれ。
0218デフォルトの名無しさんNGNG
DIスレでやれ。
0219217NGNG
気づかなかったんだよorz
■ このスレッドは過去ログ倉庫に格納されています