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

Java Spring Frameworkを語るスレ

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

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

語るべし。
0002デフォルトの名無しさんNGNG
ばっかじゃねーの。まとめて一つのスレでやれ。あほ。
フレームワーク、ライブラリなんてJavaより多い言語はいくつもあるっつーの。
あほ。
0003デフォルトの名無しさんNGNG
Java Summer Framework
0004デフォルトの名無しさんNGNG
うほっ!!!いいスレッド。。
0005デフォルトの名無しさんNGNG
本家
http://www.springframework.org/

Rod Johnson著「実践J2EE システムデザイン」
http://www.amazon.co.jp/exec/obidos/ASIN/4797322888/

TheServerSide.com - Introducing the Spring Framework
http://www.theserverside.com/resources/article.jsp?l=SpringFramework

Rod Johnson著「J2EE Development without EJB, Expert One-on-One」2004年5月発刊予定
http://www.amazon.co.jp/exec/obidos/ASIN/0764558315/

SourceBeatの電子出版書籍「Spring Live」
http://www.sourcebeat.com/TitleAction.do?id=7

「Spring Live」サポート用Blog
http://www.sourcebeat.com/roller/page/mattr@sourcebeat.com/Weblog?catname=Spring%20Live

Struts + Hibernate + Spring Framework のWebアプリ 作者は「Spring Live」の著者
http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse

Spring Frameworkを使用したJDBCプログラミングチュートリアル(作成途中)
http://www.buggybean.org/tutorials/Spring_JDBC_tutorial.pdf
0006デフォルトの名無しさんNGNG
eclipseプラグイン「Spring UI for Eclipse」
http://springui.sourceforge.net/

Spring FrameworkのWiki「Spring Pad」
http://wiki.bmedianode.com/Spring/?FrontPage

Spring Frameworkを利用した蔵書検索アプリケーション
http://www.commentout.com/people/takai/memos/booksearch-1.0-alpha-1/

PicoContainerのプレゼンテーション資料日本語版(IoCの説明がわかりやすい)
http://cvs.picocontainer.codehaus.org/viewcvs.cgi/*checkout*/site/presentations/JavaPolis2003_ja.ppt?rev=1.1&root=picocontainer
0007デフォルトの名無しさんNGNG
利点:
Spring Frameworkを使うことによって、複数のコンポーネント間の依存性が下がる。
よって、Unitテストがし易くなったり、コンポーネントの自由な結合・組み合わせが可能となる。

XMLファイルを設定ファイルにしてBeanを生成することから、一見CommonsのDigesterやBeantilsと
同じじゃないか、と思ってしまうが、そうではなくUIからDBアクセスまで全てのレイヤをサポートし
レイヤ・ライブラリ間のシームレスな連携が実現できるところが最大の特徴。

欠点:
Bean定義をXMLに書かないといけない為すぐにXMLが肥大化してしまい、Strutsのstruts-config.xmlと
同じような悩みを抱えてしまう恐れがある。
00085=6=7NGNG
自分が振れるネタはとりあえずこんなもんかな。

>>1さん
スレ立ておめ
0009デフォルトの名無しさんNGNG
Picoとの比較もありだよね。 >>1さん
Springのほうが高機能なのに、Picoのほうが
もてはやされている気がするのはなぜだろう。
漏れの気のせいかも知れんが。
SpringでPicoをつかうってのもあったような。
ソースを忘れてしまったが。
0010デフォルトの名無しさんNGNG
Type2,Type3もまいらどっち派?
0011デフォルトの名無しさんNGNG
>>9
> SpringでPicoをつかうってのもあったような。
SpringじゃなくてHibernateだった。
00125=6=7=8改め春一番NGNG
>>9さん
自分なりの意見を。

Pico ContainerはType2, Type3両方をサポートしている。SpringはType3のみ。
よって使い勝手としてはPico Containerに軍配が上がる。

でもそれはIoCフレームワークとしてみた観点のみ。
Springはそれ以外にJDBC(O/Rマッピング)、メール、Webプレゼンテーション、AOP
と様々なレイヤをサポートしている為、1つのアプリケーションに一貫性を持たせるには
やはりSpringがいい選択だと思う。(個人的にはWeb周りはまだまだという感じだが。)

ネタ振りとしてリンクもはっとこう。

IoCとは何か、DAOパターンへの適用、PicoContainerとSpringの比較
http://today.java.net/pub/a/today/2004/02/10/ioc.html

HiveMindとSpringの比較
http://javatapestry.blogspot.com/archives/2004_02_01_javatapestry_archive.html#107757766902671389

>>10さん
Type3かな。Type2のコンストラクタベースは深く突っ込んで使うには少々使いづらい。
XMLの肥大化問題はもっとこの辺が流行ってくれば、ツールが対応してくれるでしょ、と楽観。
0013春一番NGNG
>>11
HibernateでPico??

Spring + Hibernateであれば幾つかリソースがあるね。

Hibernate - Data Access with the Spring Framework
http://hibernate.bluemars.net/110.html

Spring AOP with Hibernate
http://www.springframework.org/docs/wiki/Spring_AOP_with_Hibernate.html
0014デフォルトの名無しさんNGNG
>>12
Type2とType3が逆じゃない?
Type2がSetterベースで、Type3がコンストラクタベースだよね。

それから、Spring Framework 1.0 M3以降はType2に加えてType3 IoCも
サポートされています。Type2(Setterベース)の場合、

<bean id="userManager" class="net.2ch.dao.UserManager">
<property name="dataSource"><ref bean="myDataSource"/></property>
</bean>

と書いていたものがType3(コンストラクタベース)では、

<bean id="userManager" class="net.2ch.dao.UserManager">
<constructor-arg><ref bean="myDataSource"/></constructor-arg>
</bean>

のようになる。
この場合、UserManagerインターフェースのコンストラクタのシグネチャは
public UserManager(DataSource dataSource);
という感じで。
0015春一番NGNG
>>14
_| ̄|○
0016デフォルトの名無しさんNGNG
ちょっとこっちに参戦してください。
http://pc2.2ch.net/test/read.cgi/tech/1068207164/542-543
0017デフォルトの名無しさんNGNG
>>16
参戦してきますた。
それにしても、AOPすれも多すぎだし、
各スレの依存関係が強いね。
0018デフォルトの名無しさんNGNG
つかrc2リリースくらい書こうよ
0019デフォルトの名無しさんNGNG
RCになってから、いろいろ変えんなよ。
0020デフォルトの名無しさんNGNG
>>19
リリース後はAPI変えないみたいなこといってたから
かけこみで変更しとけってのががおおかったんじゃないの?
0021デフォルトの名無しさんNGNG
web.xmlにapplicationContext.xmlを定義する方法で、Webアプリで使ってるんだけど
稼動中にapplicationContext.xmlを編集した後、内部でrefresh()を呼び出しても
全然内容が更新されない。

何でか分かる人いる?(てか、そもそもrefresh()がそういう用途にあるのかも分からん)
0022デフォルトの名無しさんNGNG
保守
0023デフォルトの名無しさんNGNG
>>21
そのrefresh()ってどのクラスにあるの?
m4では見つからなかったけど。
rc2落としてみるか。
0024デフォルトの名無しさんNGNG
>>23
AbstractApplicationContext っす
0025デフォルトの名無しさんNGNG
>>24
コードを見る限りは、refreshBeanFactoryで、
更新されそうだけど。
デバッガで追うしかない?
00261さんNGNG
正直レスついて嬉しい。ワーイ
0027デフォルトの名無しさんNGNG
なんかねたなーい?

そういえば、Spring MVCってどうよ。
WebWorkのほうがいいって香具師もいるが。
Spring単独の話題より、比較の方が特徴が分かって面白い。
0028デフォルトの名無しさんNGNG
>>27
SpringのMVCはフレキシブルすぎて「MVC初心者」には使いこなせない感じ。

FormやValidatorやらも一通り揃ってて機能的には申し分ないんだけど、
多人数のプロジェクトで使おうとするとSpringのMVCをベースにもう一段
自分用MVCフレームワークを作るような構造にしないと、StrutsのActionで
ヒーヒー言ってるような人たちにはつらいと思う。
0029デフォルトの名無しさんNGNG
IoCはもう古い!これからはDependency Injectionだ!
「Inversion of Controlコンテナと Dependency Injectionパターン」
http://www.kakutani.com/trans/fowler/injection.html




                         ・・・ごめんなさい。名前変えただけです。
0030デフォルトの名無しさんNGNG
>>29
正確にいうと、type 2とtype 3がdependency injectionね。
0031デフォルトの名無しさんNGNG
JBossAOP って IoC コンテナですか?
ってか IoC と AOP ってどんな関係? 全然違うもの?
0032デフォルトの名無しさんNGNG
全然違うモノ、
IoCはパターンのひとつ、AOPはある考え方と実践のための技術。
IoCもAOPに使えるかもしらんが、とにかく別物。具ぐれ。
0033デフォルトの名無しさんNGNG
あいまいな質問で申し訳ないが、SpringとWebWork2、どっち選んだらいいと思う?
比較資料希望。
0034デフォルトの名無しさんNGNG
>>33
比較大将間違ってないか、それ?
0035デフォルトの名無しさんNGNG
SpringとWebWork2の比較してるのは知らないな。
サンプルソースでもみて決定するのはいかが?

Spring
http://www.springframework.org/docs/MVC-step-by-step/Spring-MVC-step-by-step.html
WebWork2はWEB+DBPressで特集されてたのでそちらを参照。

だけどSpringのWEBアプリ用クラス使うより、StrutsやWebWork2と組み合わせるほうが一般的みたいよ。
0036デフォルトの名無しさんNGNG
Spring、Pico、Hivemind、XWork、S2 を比較した場合どんな感じですか?

Spring は元祖、
Pico はお手軽、
Hivemind は Tapestry サクーシャ作、
XWork は Webwork2 の一部、
S2 は日本人作

だと思うんすけど、これはここがイイ!とかあったりしますか?
やっぱ Spring がいいんかな。S2 は JTA とかついてきますが他のにも
ついてきたりしますか。
0037デフォルトの名無しさんNGNG
>>36
自前コンポーネントの管理が中心ならPicoが手軽でよい。
HibernateやJTAやVelocityまで巻き込んで管理したいならSpringが便利でよい。
自前コンポーネントの管理が中心で、かつMVCフレームワークが決まってなければ
WebWork2/XWorkというのも良い。
日本語ドキュメントが皆無でもよければHiveMindでよい。
即、実運用に入るというのでなければS2も期待大。

という感じだ。
0038デフォルトの名無しさんNGNG
>>37
Spring が実用向きってことですね。ところで
Spring は S2 みたいに JTA を使うための JTM 付いてますか?
ttp://homepage3.nifty.com/seasar/doc2/dbcp.html

別に JTM サポートする AP サーバか JDBC ドライバが必要ですか?
ってか自分で調べれないくらい英語弱いので S2 待ったほうがいいのか・・・
0039デフォルトの名無しさんNGNG
>>38
APサーバもしくは、JTAをサポートするTransactionManagerと
ConnectionPoolが必要。
0040デフォルトの名無しさんNGNG
>>39
ありがトン! JTM が無い Tomcat なので少し先の S2 で検討します。
Tomcat + Tyrex or JOTM + DBCP + Spring とかは連携があっしには
難しそうなので置いときます。
■ このスレッドは過去ログ倉庫に格納されています