Java Spring Frameworkを語るスレ
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG乱立するフレームワークと競合するプロトコルの嵐のなかで、
リスクの高い決断を余儀なくされているJavaデベロッパ、プ
ロジェクトマネージャに対する福音です。
語るべし。
0896860
2006/12/27(水) 15:11:38同意。オレも前著でSpringを学んだ。
長谷川ダンナの書くことって実世界から乖離してないから好感持てる。
本人と話したこともあるけど、いい人っぽい。
0897デフォルトの名無しさん
2006/12/27(水) 15:23:07あれ読んでからSeasarの青本読んだら、構成がほとんど同じで萎えた。
+αの何かも無くて、劣化コピー読んでる気分だった。
Seasarを一通り試したかったから最後まで読んだけど。
0898デフォルトの名無しさん
2006/12/27(水) 15:41:38内容が似通のも仕方ないと思うが。
立ち読みで気がつこうぜ。
0899デフォルトの名無しさん
2006/12/27(水) 15:46:060900デフォルトの名無しさん
2006/12/28(木) 01:25:43ステートレスになるようにしないと駄目だったりしますか?
2.0から追加されたAutowiringRequestProcessorを使ってインジェクションするBeanのscopeをprototypeにした場合なんですが、
インスタンス変数に設定されたBeanは毎回newされますが、Action自体は同じオブジェクトが使用されています。
この場合のActionってスレッドセーフじゃなくなりますよね?
DelegatingRequestProcessorを使ってscopeをprototypeとかrequestにすればいいのかも知れないけど、
その方法だとActionのインスタンスが一つになっている意味が無くなる(=パフォーマンス劣化)ような気がするし、
皆さんはどうやって解決してますか?
0901デフォルトの名無しさん
2006/12/28(木) 09:35:03俺の場合はサービスクラスは大抵ステートレスにしてる。
ここまではそれほど悩むことじゃないと思う。
その先のドメイン(ビジネス)クラスはステートフルにしたいが、
DIするとなると相性悪いから、俺的にはベストな方法が見つかってない。
過去レスで、ドメインクラスはファクトリで生成するようにして、
ファクトリをサービスやドメインにDIするって言う方法を提案してる香具師がいたと思う。
あるいは、higaタンの提案するシンドメインモデル(=データと処理のカプセル化を放棄する)か…
とにかく、ステートフルな従来型ドメインモデルとDIコンテナは相性が悪すぎる。
0902デフォルトの名無しさん
2006/12/28(木) 19:43:58>その方法だとActionのインスタンスが一つになっている意味が無くなる(=パフォーマンス劣化)ような気がするし、
>皆さんはどうやって解決してますか?
自分は Seasar (S2Struts)を使ってるんだけど、
それと(おそらく)同等のこと(component の instace 属性 を request にする)をやって、
Jmeter でレスポンス時間を調べたけど、あんまり変わらなかったよ。
0903デフォルトの名無しさん
2006/12/28(木) 21:13:33<aop:scoped-proxy/>を使うやり方では不満かい?
http://static.springframework.org/spring/docs/2.0.x/reference/beans.html#beans-factory-scopes-other-injection
0904デフォルトの名無しさん
2006/12/30(土) 17:33:21あの、当時まだU30だった俺より2,3歳くらい年上の兄ちゃんたちが
書いてる本か。1.0の本まだ読んでないのに2.0が出ているとは。
1.0の本、2,3ページ読んだだけでほったらかしてほうほうDIってこういうものなのかー
程度に済ませていたらもう2.0ときたか。
うーむ、すでに1.0本があるだけに、買うべきか迷う。
0905デフォルトの名無しさん
2006/12/30(土) 18:39:06改訂版てより増補版だから両方あっても無駄にはならない。
むしろ初心者がいきなり2.0から読むのは辛いんじゃねーかて感じ。
0906デフォルトの名無しさん
2006/12/30(土) 19:53:18JavaOneTokyoに顔出した
0907デフォルトの名無しさん
2006/12/30(土) 19:58:47Springを実務で使ってる人達なら
本家のリファレンスを印刷したものを
手元に置いとけばそれで良い気がする。
0908デフォルトの名無しさん
2006/12/31(日) 03:40:45springに初めて手を出そうと思っているのですが、
2.0の本だけ買えばいいのか、それとも1.0から読んだほうがいいのでしょうか?
0909デフォルトの名無しさん
2006/12/31(日) 03:52:43間違いなく1.0から
0910デフォルトの名無しさん
2006/12/31(日) 04:02:13どうもありがとう、やってみます
0911デフォルトの名無しさん
2006/12/31(日) 23:16:060912デフォルトの名無しさん
2007/01/03(水) 01:14:33情報ありがとうございます。
上のサイトと、書籍『Spring2.0入門』の方にも解説があったので読んでみました。
<aop:scoped-proxy/>を指定すると、リクエストのあったユーザ用のsession(またはrequest)スコープのBeanを自動で設定してくれる、って事ですよね。
これって上に書いたようなマルチスレッドの問題は解消されるんでしょうか?
Springが自動的に設定してくれるとはいえ、singletonスコープのクラスのインスタンス変数にインジェクションしたらマルチスレッドで
駄目なような気がするんですが・・・。
この辺り、上手く行く仕組みがイマイチ良く分かりません・・・。
0913デフォルトの名無しさん
2007/01/05(金) 16:41:23まだよく分かってませんが。
0914デフォルトの名無しさん
2007/01/12(金) 18:44:400915デフォルトの名無しさん
2007/01/13(土) 21:37:010916デフォルトの名無しさん
2007/01/15(月) 13:30:440917デフォルトの名無しさん
2007/01/18(木) 18:25:33プログラム作ってる時に Spring に依存する部分でどうやって処理してます?
(DAO やロジックの実装で、spring.jar が必要になっちまいそうな部分)
コンテナ変える事ってほぼないとは思うんですが。
0918デフォルトの名無しさん
2007/01/18(木) 18:41:01今ひとつ何を言いたいのかわからへん。
お客さんと打ち合わせした経験があまりない人?
0919デフォルトの名無しさん
2007/01/18(木) 22:54:42「Spring使えば、O/Rマッピングやトランザクション、ロギングで特定のライブラリに依存しなくなりますよ」
って言っても、確かに依存部分はコードからxmlに逃がすことはできるけど、
Springに依存してる箇所は相変わらず残るって事か。
commons loggingに依存しまくりなjakartaプロダクトと通じる物があるな。
0920デフォルトの名無しさん
2007/01/18(木) 23:03:070921デフォルトの名無しさん
2007/01/18(木) 23:12:52とおもってたけど、NetBeans+glassfishでEJB3やってみるとそうでもないなぁとおもた
とはいえEJB2までとは別物にした功績はでかい
0922デフォルトの名無しさん
2007/01/18(木) 23:36:55Mock
0923デフォルトの名無しさん
2007/01/19(金) 02:50:57ってちょっと思ったけど、考えてみたらWebアプリ(っつーかサーバ)
じゃないと使いにくいよね。xml添付しまくるデスクトップアプリって
なんかかっこ悪いし。
0924デフォルトの名無しさん
2007/01/19(金) 07:34:32なぜそう思うのか?
XMLドキュメントなんて、JARの中に入れておけばいいじゃない。
0925デフォルトの名無しさん
2007/01/19(金) 07:36:17>なんかかっこ悪いし。
いみふ
0926デフォルトの名無しさん
2007/01/19(金) 07:47:470927デフォルトの名無しさん
2007/01/19(金) 07:51:04さらにいみふ
0928デフォルトの名無しさん
2007/01/19(金) 07:52:340929デフォルトの名無しさん
2007/01/19(金) 07:57:32Spring良さそうな噂を聞いて使ってみようかと思ったけど、
それにはそれなりの学習コストが必要であるのがわかって、
そこまではしたくない言い訳にいみふなことを連発しているだけだと推測する。
0930デフォルトの名無しさん
2007/01/19(金) 07:59:38SpringとEJBは別腹よ?w
0931デフォルトの名無しさん
2007/01/19(金) 10:56:19確かに意味不明な文になってた。すまん。
JdbcTemplate や JmsTemplate、DisposableBean
とかを使う場合、Spring に依存した実装になるんだけど
POJOでウハウハな思想だと、なるべく依存部分は減らしたい。
で、そういう場合に
1. 依存しててもいいじゃない。
2. Springから独立した部分と依存部分にわけて、
独立部分がアダプター経由して依存部分を使用する。
3. XML定義で済むなら無理して使わない。(init-method 書けば済む InitializedBean など)
のどの方針で行ってますか?と。ケースによる使い分けとか、
もっとスマートな方法でやってるとか。
そんなことを聞きたかった。
0932デフォルトの名無しさん
2007/01/19(金) 12:07:11外部リソースを使用する限り、必ずどこかでそれらに依存して実装しなければならない部分はある。
だから依存してる部分としてない部分をハッキリさせておくことが重要なんじゃないかな?
IFきってあるDAOだけならいくらでも依存させておけ
0933デフォルトの名無しさん
2007/01/19(金) 12:31:480934デフォルトの名無しさん
2007/01/19(金) 14:16:22http://d.hatena.ne.jp/higayasuo/20070119#1169180656
0935デフォルトの名無しさん
2007/01/19(金) 16:50:29ご意見どうもでした。
と言うか、盛り上がりようもないくらいに
当たり前の結論に至ってしまった・・・
0936デフォルトの名無しさん
2007/01/19(金) 17:39:57皆さんはデータベースアクセスにどんなツールを使ってますか?
Hibernateが多いのでしょうか?
0937デフォルトの名無しさん
2007/01/19(金) 19:58:46実装は好きなの使ってもいいが、それぞれ癖をつかんどけ
0938デフォルトの名無しさん
2007/01/19(金) 21:56:280939デフォルトの名無しさん
2007/01/19(金) 22:37:080940デフォルトの名無しさん
2007/01/19(金) 23:34:010941デフォルトの名無しさん
2007/01/20(土) 01:19:33xml使ってるってのはスマートじゃないって気はするね。
感覚的に、だけど。
0942デフォルトの名無しさん
2007/01/20(土) 03:36:260943デフォルトの名無しさん
2007/01/20(土) 06:45:06わざわざHibernateをHibernateとして使うメリットはないと思う。
0944デフォルトの名無しさん
2007/01/20(土) 09:05:47CriteriaとかLock付きのloadとかって結構いいなと思うんだけど
みんなそーでもないのかな。
0945デフォルトの名無しさん
2007/01/20(土) 09:34:120946デフォルトの名無しさん
2007/01/20(土) 09:36:450947デフォルトの名無しさん
2007/01/20(土) 11:45:33逆にHibernateなのにわざわざJPAを使うメリットは?
標準だから?w
0948デフォルトの名無しさん
2007/01/20(土) 15:31:39いままでHibernate使っててノウハウあるなら、勝手にやって。
0949デフォルトの名無しさん
2007/01/20(土) 15:32:01既に手をつけたものが用途に納まりきるなら、他のを使うことは馬鹿げている
JDBCひとつでやってきた奴がこれから始めるならJPA
色んなORMを使い続けている奴がいたらそいつもJPA
残りは今までどおりでいい
0950デフォルトの名無しさん
2007/01/20(土) 16:36:200951デフォルトの名無しさん
2007/01/20(土) 17:24:54資料と技術者で現時点で優位に立っているとは思えない。
これからだね。
0952デフォルトの名無しさん
2007/01/21(日) 11:30:36JPA対応していれば自由に実装をかえることができるのもよろしい
Hibernate固有の命令はつかわずにHEMだけできるだけ使うのが正解かと
サーブレットだってコンテナ依存コードは出来るだけ書かないのと同じ
0953デフォルトの名無しさん
2007/01/21(日) 15:47:160954デフォルトの名無しさん
2007/01/21(日) 18:13:23ナニが足りない?
0955デフォルトの名無しさん
2007/01/21(日) 18:25:430956デフォルトの名無しさん
2007/01/21(日) 19:56:48Hibernate Validatorのことか…
ちとレイヤが違うって気がするな。
マッピングだけなら@Column(nullable=false)
0957デフォルトの名無しさん
2007/01/21(日) 22:39:37それってみんな不便と思わないのかな。
(PUBLIC DRAFTの頃だけかもだけど)
コレ出来ないと
find(SELECT)→lock(PKだけでSELECT FOR UPDATE)→refresh(SELECT)
ってな感じでやらないと真っ当にロックした値にならないように思える。
楽観的ロックは例外飛んじゃうからそれはそれで嫌だし。
0958デフォルトの名無しさん
2007/01/21(日) 22:50:020959デフォルトの名無しさん
2007/01/22(月) 11:05:27Springネタの投稿ないんだから。
0960某スレ167
2007/01/22(月) 12:50:02Eclipse RPCと組み合わせてる記事見つけてハァハァしてまつ(苦笑)
http://www.devx.com/Java/Article/31763/0/page/1
これは(上手く動けば)かなり使い物になるのではないでしょうか?
今までS2Daoが使いたいがためにSeasarを学習していたのですが、今までの学習コスト全てを投げ捨ててSpringするかもしれません(-_-;
0961デフォルトの名無しさん
2007/01/22(月) 13:29:17JAX-WS/EJB3ともろにかぶる仕様だな
あとサポートとか考えるとSWT単体はあってもRCPとの組み合わせはまずない
業務系ならSwingのほうが便利だしな
0962デフォルトの名無しさん
2007/01/22(月) 13:35:37>今までS2Daoが使いたいがためにSeasarを学習していたのですが、
>今までの学習コスト全てを投げ捨ててSpringするかもしれません
には共感しまつた
0963デフォルトの名無しさん
2007/01/22(月) 14:39:21でもSpringRemotingも通信部分と割り切るのもいい。
汎用性ならJAX-WSかな。
でも純正のJavaEE実装もかなりよくなったし、ベストの可能性もある。
EJB3はDI化され、永続化はJPA、XMLまったくかかなくてリモートアクセスまでできるのもいいんだよなぁ。
HTTPがフロントエンドにこなくてもいいのならそのままEJBを使えばいいし、前面にだすならJAX-WS。
ところでspring2.0はフィールドインジェクションできるようになってる?
セッターとかコンストラクタとかは非常に使い勝手が悪いので邪魔。本当はXMLも自動生成されるといいんだけどね。
0964デフォルトの名無しさん
2007/01/22(月) 15:11:39おでも最近そう思い始めてる。
S2DaoいいんだけどSeasar前提だとちとつらいケースあるし。
JPA基本で対応できない部分はJPA実装固有の機能で逃げるという気持ちになりつつある。
0965某スレ167
2007/01/22(月) 16:45:58>>961
所謂「リッチクライアント」としてはそうかも。
Eclipse RPCはクライアント側のアプリケーションを構築するフレームワークという意味合いが強いと思う。
クライアント側でどれだけ複雑な処理をやるか、ということで
Eclipse RPC
↓
SWT
↓
Ajax(GWTはどーなんだろ?)
↓
すっぴんのWebアプリ
なんて階層になるのでは、などと思ってまつ。
JavaにこだわらなければFlexあたりも中に割り込んでくるのでしょうがね。
JAX-WSは名前も知りませんでした。ありがとうございます。早速調べてみます。
>>962-964
ORMスレでも書いたのですが、結局1:Nマッピングや複雑なビューの生成は自分で書くしかない、って思ってしまうんですよ。
とりあえずはDbUtilsやSpringJDBCを手早く身に付けておいて、続きはJPAというふうにしたほうがいいかな?、と思っています。
そーするとSeasar2を学習する意味が無くなるのですが……それでもSeasar2の自動コンポーネント登録/自動アスペクト登録にはまだ魅力を感じています。ありゃ便利です。
人はこうやってSeasarの重力に魂を引かれていくのですね(笑)
0966デフォルトの名無しさん
2007/01/22(月) 17:10:50実際のところJPAでもネイティブなSQL発行できるのでそんなに問題はないと思う
どのみちファサードパターンでユーザー側はDBの存在を意識させないようにしてるし、JDBC直でもなんでもいいし
>>965
RPCだと覚えるのが多いわりに、情報がないので問題がでたとき対処ができない
業務で使わないのならいいかもしれないけどね
同じフレームワーク使うならSwingベースのNetBeansプラットフォームのほうがまだ楽
どちらもでかすぎて最適解ではないとおもうけど
クライアントサイドはフレームワークで縛れるようなコードなんてほとんどないよ
JAX-WSはJAX-RPCの後継でWEBサービスのJavaEE5の一部
アノテーションを使うことにより手軽にサーバーが用意できる
それがなんとJavaSE6に搭載されたおかげで標準APIだけでクライアントのコードを書くことが出来るために
一気にクライアントサーバーのAPIとして注目の的となる
最後の段落の最初のほうは意味がちとわからん
後半はEJBもXML書く必要は一切なしだし、セッターとかも用意する必要ないし、Seasar2使うときもS2Tiger使っておくのが吉かも
0967デフォルトの名無しさん
2007/01/22(月) 17:27:00Eclipseファンデーションから、RMI絡みの新しいフレームワークが出たのかと思ったじゃないか。
0968デフォルトの名無しさん
2007/01/22(月) 19:21:54Spring Remotingは同じく知らないが、
S2RMIと比べてどの辺が使いやすいのか教えてくれ。
http://s2rmi.seasar.org/ja/index.html
0969962
2007/01/22(月) 19:47:10Spring Remoting使ったことないおでに何故S2RMIとSpring Remotingの比較をせよと?
S2RMIも使ったことないのにw
0970デフォルトの名無しさん
2007/01/22(月) 19:48:18> それがなんとJavaSE6に搭載されたおかげで標準APIだけでクライアントのコードを書くことが出来るために
> 一気にクライアントサーバーのAPIとして注目の的となる
それだけじゃ無理だお
JDKに最初から入ってるのにCORBA流行ってないお
0971デフォルトの名無しさん
2007/01/22(月) 19:56:390972デフォルトの名無しさん
2007/01/22(月) 20:04:450973デフォルトの名無しさん
2007/01/22(月) 20:15:56JavaEE5にもついていけない人は多いのだろうか。
JAX-WSはWSDLからのクライアント生成を徹底しているからクライアントにわたるクラスがなにか意識しないでもいいのがすごいな。
SpringRemotingはクライアントとのやりとりはインターフェースでやるのかな。
SpringRemotingと比較すべきなのはどちらかといえばHTTPを使うS2Axisのほうだとおもう。
ただ、S2Axisって名前がよくないなー。Axisなんてのに依存するのはよくねーよ。
0974デフォルトの名無しさん
2007/01/22(月) 20:35:130975某スレ167
2007/01/22(月) 21:09:29>>966
多少前後しますが……えと、ORMスレ読んでました?(^^;
私あちらで「どーせ1:N関係には多かれ少なかれビジネスロジック絡んでくるんだから、
1テーブル/1レコードをそのまま扱うDAO/DTO作って、1:Nの関係扱う(ある程度ビジネスロジックを内包した)ファサードで纏めちゃえばいいぢゃん」とか書いてたんです(苦笑)
単に設計がまずいだけかもしれませんけどね(^^; 自作DAOしこしこ作ってた駄目エンジニアの戯言です。
で、前段。確かに、奥のほうの情報はあまりないんですよね>Eclipse RCP
とりあえず使えるようにする情報くらいまではそこそこ出てきているんですが、何か起こったときにコワいぢゃん、というのは、確かにあると思う。
EJBか……2で挫折したんですよねー、三年ほど前に(^^;
S2Tigerは(もしこのままSeasarするなら)もちろん使うつもりです
>>967
フォローどもっす。素で間違えてました(苦笑
>>968-973
CORBAは全盛期の遥かな昔にチロっと甞めました(苦笑
つーか、そのものずばりのS2Remotingってのが先月出てた……(^^;
http://s2remoting.seasar.org/ja/index.html
0976デフォルトの名無しさん
2007/01/22(月) 21:22:36そのビジネスロジックの絡んだ1:Nってのがあいまいすぎてわからない
S2TigerつかってるならそれはEJB3.0とほぼ同じだよ
@EJBってフィールドインジェクションとXMlで面倒なのは一切なし
JavaEE5に準拠していればJPAもコネクションプールからDIしてくれるからDB接続等は意識していない
技術的なEJB2との互換性はほぼゼロ(お互いに呼べるけど)だからEJB2ってのと3は別物だと思っていいよ
EJB3.0はSeasar2+JPA(O/Rマッパ)内蔵で非常にシンプル
開発においてSpringやSeasar2より敷居が低いのにはまじで驚ろくはず
0977デフォルトの名無しさん
2007/01/22(月) 21:27:040978デフォルトの名無しさん
2007/01/22(月) 21:33:19いまいちわからん
0979デフォルトの名無しさん
2007/01/22(月) 22:33:10> S2TigerつかってるならそれはEJB3.0とほぼ同じだよ
つS2Tigerで@EJBできるからな
ttp://s2container.seasar.org/ja/ejb3.html
0980デフォルトの名無しさん
2007/01/22(月) 22:34:150981デフォルトの名無しさん
2007/01/22(月) 22:43:27つか、このスレ九州くせぇw
0982デフォルトの名無しさん
2007/01/22(月) 23:02:01ついていきたくてもWASが対応するまで無理
JavaSE5だって去年やっと対応したが現場じゃこれから
今年こそはアノテーション使いたいよw
好き勝手使える人は気楽でいいよな
0983デフォルトの名無しさん
2007/01/22(月) 23:04:43複数の呼び出しを一まとめにして呼べと言う
GOFのデザパタ中でもっとも面白くもなんともないパターン。
0984デフォルトの名無しさん
2007/01/22(月) 23:13:34facade
俺にはファケードとしか読めねぇと思ったが
フランス語らしくCの下に髭みたいのが生えてる文字が正式らしい。
0985デフォルトの名無しさん
2007/01/22(月) 23:19:43classicなものを使い続けられる人の方が気楽なのでは?
0986デフォルトの名無しさん
2007/01/22(月) 23:22:15みんな975みたいなことしてんのか?
ビジネスロジックを内包したファサードってなんだよ?
DTOでもなくドメインモデルでもないクラスってなんだ?
0987デフォルトの名無しさん
2007/01/22(月) 23:25:35新旧問わず自分で選んだものを好きに使える人は気楽
0988デフォルトの名無しさん
2007/01/22(月) 23:31:09気楽という意味がわからん。
0989デフォルトの名無しさん
2007/01/22(月) 23:32:370990デフォルトの名無しさん
2007/01/22(月) 23:34:390991デフォルトの名無しさん
2007/01/22(月) 23:38:01当方 Spring Remoting の RMI なら使ったことありました。
本来ならスキーマコンパイラ走らせたりいろいろ面倒なところ、
ビーン定義でサクっと動くのはとても楽。
Javaの世界に閉じてるなら RMI で良いよって感じです。
Java外も絡むならWebServiceかな。
にしても Spring WebService がなかなか Release にならんですね。
ていうか、O/X Mapping から Relaxer の項目消されてるし・・・
0992デフォルトの名無しさん
2007/01/22(月) 23:49:26Springに転向したおいらが来ましたよ。
0993デフォルトの名無しさん
2007/01/22(月) 23:50:21EntityManagerのDI
>>979
同じことが出来るなら人材確保やメンテ考えて標準APIのほうがいいからね
0994某スレ167
2007/01/23(火) 01:34:22>>986
まぁ、所詮は30台後半でも実装メインで食ってるしがないIT土方の寝言ではありますが(^^;
ただ、はぶさんの「FKかっこわるい。そのへんも全部『○○関係テーブル』って名前でDBに入れとけ」ってのも、なんか違うような気もしないでもない。
>>991
んと、昨日買ってきたばかりの「Spring2.0入門」によると、HessianとBurlapも使える……と、書いてある(^^;
ただ、「ふつーはHttpInvokerでいいんぢゃね?」とのこと。
0995デフォルトの名無しさん
2007/01/23(火) 02:26:01お前が言ってる事も違うような気もしないでもない。
焦点も内容も。
OOPしてないんだろうなきっと。
してないならしてないで構わんのだが、DTOとビジネスロジックの切り分けぐらいはしておいたほうが良いと思うぞ
レス数が950を超えています。1000を超えると書き込みができなくなります。