Java Spring Frameworkを語るスレ
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG乱立するフレームワークと競合するプロトコルの嵐のなかで、
リスクの高い決断を余儀なくされているJavaデベロッパ、プ
ロジェクトマネージャに対する福音です。
語るべし。
0850デフォルトの名無しさん
2006/09/12(火) 01:32:580851デフォルトの名無しさん
2006/09/20(水) 09:59:17ぐぐれ
0852デフォルトの名無しさん
2006/09/29(金) 00:22:03ってEclipseのパクリかよw
0853デフォルトの名無しさん
2006/09/29(金) 21:48:320854デフォルトの名無しさん
2006/09/29(金) 22:11:270855デフォルトの名無しさん
2006/09/30(土) 21:57:090856デフォルトの名無しさん
2006/10/02(月) 18:46:19以下の場合、スレッドセーフになりますか??
・SpringとStrutsの連携で「DelegatingActionProxy」を使用
・Service層のオブジェクトをSetterインジェクションしてインスタンス変数に保持
※Service層のオブジェクトはスレッドセーフを意識していない
StrutsはスレッドセーフにするにはActionでインスタンス変数を使用しないとなると
↑の場合、スレッドセーフにならないような気がします。
もし、スレッドセーフにならないとして、synchronizedする以外でいい方法が
あれば教えてください。
やっぱ、ActionSupport使うしかないんですかね??
0857デフォルトの名無しさん
2006/10/02(月) 20:18:36ここで言う setter injection てのは
定義ファイルに書いといてコンテナにDIしてもらう事?
Action も Service も singleton="false" にすれば
スレッドセーフを考えなくてもOK。(コストは最悪。)
>ActionSupport使うしかないんですかね?
ActionSupport も Action に違いないので
インスタンス変数持たせたら大変。
インスタンス変数を ThreadLoacal で保持させる方法も考えられるけど、
サーブレットコンテナが Action のインスタンスを使い回したりするから、
execute 抜ける前に、確実に変数クリアする等の注意が必要。
結局、いろいろやるより、Service 層をスレッドセーフにした方が楽。
0858デフォルトの名無しさん
2006/10/03(火) 10:02:49コンテナに DI してもらうという意味です。
言葉足らずでした...
確かに ActionSupport も Action を extends してるから
DelegatingActionProxy だろうが一緒ですね
Service 層をスレッドセーフな構造になるように考えてみます。
0859デフォルトの名無しさん
2006/10/04(水) 00:10:570860デフォルトの名無しさん
2006/10/05(木) 09:43:31読んでたら宜しく>豆
0861デフォルトの名無しさん
2006/10/27(金) 01:13:54やってみたー。動かなかったー。
orz
0862デフォルトの名無しさん
2006/10/31(火) 20:38:16ttp://journal.mycom.co.jp/articles/2006/10/26/annotation/
そんでさ、インスタンスをサ、createBeanで作ってやったワケよ。
とりあえずサ、動くこと確認してから記事にしろと言いたいわけ。
ソースまで追っかけさせんナ。ヽ(`Д´)ノウワァン
TOAnnotationXmlApplicationContext ctx =
new TOAnnotationXmlApplicationContext("classpath*:applicationContext.xml");
ConfigurableListableBeanFactory factory = ctx.getBeanFactory();
//createBeanの第2引数の0とか1とか2とかね、第3引数のtrue, falseとかね。ヘ(゚∀゚ヘ)アヒャ
TargetBean bean = (TargetBean)factory.createBean(TargetBean.class, 1, true);
bean.xxx();
プログラムは漏れの本業じゃないのに…。
烏賊にも動きました的な記事は要らんよ。検証してから書けや!
spring-annotation 試したヤシ、居る?
0863デフォルトの名無しさん
2006/11/01(水) 10:38:09テストケース触った方が良いかも知れんですよ。
annotation なんて無視するのが一番だと個人的には感じる。
0864デフォルトの名無しさん
2006/11/01(水) 12:20:21しかもSpring-annotation同梱のサンプル・ソースも同じコードだし、ドキュメントないし。
結局ソース追っかけてくしかないね。
0865デフォルトの名無しさん
2006/11/01(水) 12:36:590866デフォルトの名無しさん
2006/11/02(木) 01:59:49どのへんが?
0867デフォルトの名無しさん
2006/11/02(木) 11:11:00アノテーションでInjectionとか出来るなら使えるけど、そうじゃなきゃ意味ないぽ。
0868デフォルトの名無しさん
2006/11/02(木) 11:21:380869デフォルトの名無しさん
2006/11/02(木) 22:28:27普通に動いたけど。
それだとアノテーション書いてる意味なくね?
0870デフォルトの名無しさん
2006/11/02(木) 22:34:44アノテーションの定義のやりかたによってはXML不要になる。
オレオレアノテーションの定義もそれほど難しくないし。
0871デフォルトの名無しさん
2006/11/02(木) 23:17:18あと、createBeanの第2引数はファクトリの定数でいいかと。
0872デフォルトの名無しさん
2006/11/03(金) 00:02:37え゛?
new TOAnnotationXmlApplicationContext("classpath*:applicationContext.xml").getBean("bean");
だと、
NoSuchBeanDefinitionExceptionが返ってきて"No bean named 'bean' is defined"って言われる。
factory.createBean(); で動きました?
>ファクトリの定数
ソース見たら、BY_NAMEは1だって書いてあったので。
ConfigurableListableBeanFactory.AUTOWIRE_BY_NAME
でいいわけですね。
0873デフォルトの名無しさん
2006/11/07(火) 14:49:210874デフォルトの名無しさん
2006/11/25(土) 18:53:10MSの.netもおんなじようなSpring出しているけど
最近なんかMSさん追随してません。
0875デフォルトの名無しさん
2006/11/25(土) 19:55:240876デフォルトの名無しさん
2006/11/26(日) 02:57:300877デフォルトの名無しさん
2006/11/26(日) 18:43:09ドキュメンツ読んでもいまいちよくわからんし、管理するxmlが増えそうだし。
0878デフォルトの名無しさん
2006/12/03(日) 19:40:12Spring.NET 1.0.2ならC/SのWindowsFormsな案件で使ってる。
SpringにはFormとDataAccessを管理させてる。
あと、AOPでDataAccessモジュールのSQLクエリキャッシュとトランザクション制御をやってる。
0879デフォルトの名無しさん
2006/12/06(水) 16:53:07仕事(主に顧客の業務イントラ)でDIコンテナ使うとき、springを使うときのほうが圧倒的なのだが。
seasarを使っているというのをほとんど聞いたことがない。
ソフトウェアとしてどちらが優れているということについては
ここでは置いときますが、個人的にはSeasarには興味があるけど、
もっとspringのスレも盛り上がっていいと思うのだが・・・
0880デフォルトの名無しさん
2006/12/06(水) 16:58:10実際問題、Springで十分実用に耐えるんだけどな。
日本以外も含めれば、実績も多いみたいだし。
0881879
2006/12/06(水) 17:04:002ヶ月前アメリカに行ってとあるカンファレンスに出席してきたけど、
やはりみんなspring使ってた。
SSH(Struts, Spring, Hibernate)を肌で感じた。
>国産だし、どうしても目がいっちまう。
おれの周りだけかもしれないけど、
みんなspringという名前は知っているけど、Seasarという名前は
知らない人が多い。
0882デフォルトの名無しさん
2006/12/06(水) 17:44:11教祖ネタというか、燃料が供給されるかの違いだと思うけど。
0883デフォルトの名無しさん
2006/12/06(水) 18:39:26でも2ヶ月前でまだStrutsってどうなんだろうな。
俺はもうリッチクライアント以外をお勧めする気にはならんですよ。
自分で作っててもムカつくし。
WebでやりたいならRailsにしましょうとか、そんな感じ。
0884デフォルトの名無しさん
2006/12/06(水) 19:50:33Flash+JSFとかあっても良さそうなんだけど。
Flex2とかOpenLaszloとかもうちでは聞かないし。
0885デフォルトの名無しさん
2006/12/06(水) 23:56:01ここはSpringのプロダクトをヲチするスレ
あっちはSeasarな人たちをヲチするスレ
0886デフォルトの名無しさん
2006/12/06(水) 23:56:450887デフォルトの名無しさん
2006/12/06(水) 23:59:440888デフォルトの名無しさん
2006/12/07(木) 00:05:300889デフォルトの名無しさん
2006/12/07(木) 15:18:11あれはあれで立派なプロダクト。
なんだけどRailsって言うだけあって
規約にガチガチなのが俺には合わなかったです。
これはもう好みの問題だけど、
強い型付けでガチガチに守られつつも
コンポーネント間をゆるゆるにつなげるDIが
俺的には良い落とし所。
0890デフォルトの名無しさん
2006/12/07(木) 19:23:27自分は、「いちいち書かなくてもだいたい分かるだろ」
だと思うんだけど。
0891デフォルトの名無しさん
2006/12/07(木) 21:58:41合わない奴に合わせる気はないから使わなくていいよって規約だろうな
0892デフォルトの名無しさん
2006/12/23(土) 13:59:43http://www.amazon.co.jp/exec/obidos/ASIN/4774130001/
早速2.0対応本が出ますね。
豆蔵か。
0893デフォルトの名無しさん
2006/12/23(土) 14:17:54何か成果出したっけ?
0894デフォルトの名無しさん
2006/12/24(日) 01:20:09thx。
早速Amazonにて予約完了。
正月あたりに読みふけりますわ・わ・わ。
0895デフォルトの名無しさん
2006/12/25(月) 09:10:090896860
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:20レス数が950を超えています。1000を超えると書き込みができなくなります。