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

Java Spring Frameworkを語るスレ

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

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

語るべし。
0582デフォルトの名無しさん2005/11/13(日) 16:09:48
解説ありがとう
今から外出しないといけなくなった
とりあえずどんな実装をしていくかという
癖みたいなものはわかった。
出たついでに本屋にでも寄って理論を立ち読みしてくるわ
0583デフォルトの名無しさん2005/11/13(日) 18:13:33
ぬるぽ
0584デフォルトの名無しさん2005/11/13(日) 22:40:28
帰ってきたよ
理論読んでくるの忘れたから、検索するわ
あとで
0585デフォルトの名無しさん2005/11/17(木) 20:48:05
1.2.6記念
0586デフォルトの名無しさん2005/11/28(月) 11:55:56
閑古鳥だな
0587デフォルトの名無しさん2005/11/28(月) 12:00:14
DIは結局流行り物だってこった。

DIスレもSeasarスレも活気ないしな。
0588デフォルトの名無しさん2005/11/28(月) 12:06:55
需要は大いにあるけど、
言語レベルでの制約によるメリットが一部損なうことや、
リファクタリングがかなりし難くなるところがやはり気に食わないな。
0589デフォルトの名無しさん2005/11/28(月) 12:33:48
DIコンテナがなくても
SetterInjectionとFactoryでいいけどさ。
AOPと親和力が高いのが魅力的だよね。
抜け出せない。
遅いのに。
0590デフォルトの名無しさん2005/11/28(月) 13:15:50
つか、もうEJB3でおけ
0591デフォルトの名無しさん2005/11/28(月) 13:18:05
でも「EJB?ハァ?これからはSpringだろ」
てのを受けて試しにSpring触って第一印象が>>577ってパターンが結構多い気がするな。
0592デフォルトの名無しさん2005/11/28(月) 20:17:43
フロントしか弄ってない俺には、Strutsの焼き直し。
0593デフォルトの名無しさん2005/11/28(月) 21:17:10
今って分散環境だとビジネスロジックには
何が一番使われてんの?
0594デフォルトの名無しさん2005/11/28(月) 21:21:10
あ、これじゃいみわかんねえや
モデルだった
0595デフォルトの名無しさん2005/11/28(月) 22:32:06
>>592
Strutsとは全くかぶってないので、StrutsをどうやきなおしてもSpringにならない・・・
0596デフォルトの名無しさん2005/11/28(月) 22:33:25
>>595
フロントコントローラ、まんまStrutsなんだが。
0597デフォルトの名無しさん2005/11/29(火) 00:09:53
これってどこがいいの?
XMLからクラスが生成できるだけ?
0598デフォルトの名無しさん2005/11/29(火) 00:22:41
>>595
次の次ぐらいのStrutsはWebWorkになるそうだぞ。
0599デフォルトの名無しさん2005/11/29(火) 00:25:00
ん?IDEと統合するのを目標に作られたJSFがあるからそれはないべ?
0600デフォルトの名無しさん2005/11/29(火) 00:34:16
>>599
ほれ。
ttp://www.mail-archive.com/dev%40struts.apache.org/msg13815.html
0601デフォルトの名無しさん2005/11/29(火) 00:37:30
もうひとつ。
ttp://blogs.opensymphony.com/webwork/2005/11/webwork_joining_struts.html
スレ違い。失礼。
0602デフォルトの名無しさん2005/11/29(火) 00:42:46
>>600-601
えーーーー。
なんかすっげー違和感・・・。
0603デフォルトの名無しさん2005/11/29(火) 12:19:40
>リファクタリングがかなりし難くなる
なるか?
設定ファイル書き直しの手間が云々って意味?
0604デフォルトの名無しさん2005/12/01(木) 20:40:22
SpringFrameworkのDefaultIntroductionAdvisorと
DelegatingIntroductionInterceptor の使い方がやっと分かった。

AOPヽ(´ー`)ノマンセー
0605デフォルトの名無しさん2005/12/06(火) 10:25:25
使う場所を見つけるまでがAOPです
0606デフォルトの名無しさん2005/12/08(木) 08:03:22
AOPとDIと、どっちが偉いの?
0607デフォルトの名無しさん2005/12/08(木) 08:41:40
別々の話だから、比べてもしかたない。
0608デフォルトの名無しさん2005/12/08(木) 09:35:46
どっちも偉くはないですが
0609デフォルトの名無しさん2005/12/10(土) 23:50:35
http://muimi.com/j/aop/spring/
SpringのHello Worldでどのサイトをみても
これ以上のことがどこも書いていないのですが
どういった点が優れているのでしょうか?

いまいちこのフレームワークが他よりも優れいているというメリットが見えないのですが
また具体的に何が得意とかあるのでしょうか?
0610デフォルトの名無しさん2005/12/11(日) 01:16:39
他ってなんのことを言ってるの?
0611デフォルトの名無しさん2005/12/11(日) 15:13:00
みなさん実際に実務だとどんなところにSpring使ってます?
全面的に使ってたりする?
0612デフォルトの名無しさん2005/12/11(日) 15:47:19
Springは使うなら全面的だろ。
0613デフォルトの名無しさん2005/12/11(日) 15:49:33
>>612
大根としてつかうだけならどこか1部だけでもOKでは。
0614デフォルトの名無しさん2005/12/11(日) 16:10:46
>>613
たとえばStruts使う場合だと、すべてのActionをSpringに委譲するし。
0615デフォルトの名無しさん2005/12/11(日) 16:14:12
>>614
具象オブジェクトの生成部分を切り出す単位って、そこしかないわけか
オイ?モットどこにでもあるでしょうがよ。
0616デフォルトの名無しさん2005/12/11(日) 16:20:57
???
0617伝説新人タクシ2005/12/11(日) 16:23:20
>>609
疎結合であるとかそれによって単体テストがしやすいとかいうこと?
0618デフォルトの名無しさん2005/12/11(日) 17:11:40
Springわかんなかったんなら、EJB3を待ってたほうがいいかもね。
0619デフォルトの名無しさん2005/12/11(日) 17:54:34
予習でやるならともかく、今の流れだと、これから本格的にSpring使うってのはなしなきがするな。
だから、逆に絶対やっといても損はない気がするけどさ。
0620デフォルトの名無しさん2005/12/12(月) 10:29:59
そんな難しいものじゃないし、画期的な機能に満ち溢れているわけでもないよ。
ただ単に便利なツールでいいのだと思うけど。
便利なBeanFactory、それで充分だよ。

おまけで付いてくる付属品はけっこういいよ。
AOPもそうだし、ORMやらmailやらが楽チンに扱えるのも嬉しい。

S2でもSpringでもどっちでもいいけど、これがない世界には戻りたくないね。

EJB3があれば不要という話もあるね、GabinKingが主張しているように。
でもSpringを通してEJB3を使った方がより簡単、そういう機能が出てくるって予想してる。
0621デフォルトの名無しさん2005/12/12(月) 10:36:16
というか、普通のTomcatで動かせて面倒なパッケージング不要なEJB3、みたいな感じになると思う。
0622デフォルトの名無しさん2005/12/12(月) 10:36:44
追伸:煽るワケじゃないが、Springごときを理解できない方が
EJB3を使いこなせるとは思えない。Annotationの裏で
起こっている出来事を多少は理解している必要はある、って
認識の元の考えだけど。
0623デフォルトの名無しさん2005/12/12(月) 10:58:46
Springってかなり裏方的な働きだから、単体ではよさがわかりにくいんだと思う。
EJB3でも、単にORマッピングだという認識で、なんだか裏側で勝手に結びつけてくれるという感じになるんじゃないかな。
0624デフォルトの名無しさん2005/12/12(月) 16:27:03
EJB3 って来ると思う?
Java ソースにアノテーション埋め込むのと
設定ファイルに外出しされてるのと
どっちが疎結合か考えたら
EJB3 は退化してるとしか思えない。
0625デフォルトの名無しさん2005/12/12(月) 18:56:40
アノテーションで疎結合じゃないという話は、すでに時代遅れだし、EJB3が来ないと思うなら、別の部分で批判しないといけない。
0626デフォルトの名無しさん2005/12/12(月) 19:05:38
簡単に理由をいえば
「疎結合のためにアノテーションを排除して、なんの意味がある?」
0627デフォルトの名無しさん2005/12/12(月) 20:42:36
プゲラ
おまいらどうせ来年にはAnnotationに文句垂れてると思うよ、飽きっぽいから。
0628デフォルトの名無しさん2005/12/12(月) 21:45:25
>>627
いや、それはそれで良いんじゃねぇの?
不満がなければ技術革新なんてねぇさ。
0629デフォルトの名無しさん2005/12/12(月) 21:58:43
Annotationの仕様には不満があるけど、Annotation自体はとても気に入ってるよ。
0630デフォルトの名無しさん2005/12/12(月) 22:25:06
Springで簡単なWebアプリを作るサンプルがあるサイトしらない?
WebApplicationContextを使って云々みたいな。。。
0631デフォルトの名無しさん2005/12/12(月) 22:28:53
Struts使った方が楽だからねぇ・・・
0632デフォルトの名無しさん2005/12/12(月) 22:53:59
AnnotationとEnumの組み合わせが好きだな
XDocletとは違って定数を指定できるし、引数の型チェックも出来る
0633デフォルトの名無しさん2005/12/13(火) 02:02:54
StrutsよりもJSFをもう少し簡単にした物を使いたい
0634デフォルトの名無しさん2005/12/13(火) 09:39:22
>>630
ほらよ

http://www-06.ibm.com/jp/software/websphere/developer/j2ee/lightweight/
http://www5f.biglobe.ne.jp/~webtest/myapptutorial/index.html
https://appfuse.dev.java.net/
https://equinox.dev.java.net/

勧められるのは、ビジネスロジックレイヤ内にサービスレイヤを
作ってるヤツ。(Facadeかけてるやつ)

とりあえずIBMのヤツを熟読しろ。
0635教えてください2005/12/13(火) 21:35:54
左クリックを使用できないようにjavaScriptを組んだつもりでしたが、機能しません。
どこが間違ってるのかご指南ください。

問題のHP http://urei.ojaru.jp/top.htm
フレームを使用してますが 
Images→***のリンク→左使用不可ページ となってます。

*** のページ 左使用不可ページ直リン防止script
左使用不可ページ 左使用不可script

このようにしたのですが・・・・・・・マイリマシタ
もうどうしていいのか分りません
0636デフォルトの名無しさん2005/12/13(火) 22:01:21
>>635 はスレ(板?)違いの上に、マルチ
0637デフォルトの名無しさん2005/12/14(水) 10:05:47
板違いというより、基地外
0638デフォルトの名無しさん2005/12/16(金) 02:08:32
Spring.NETの方はどうですか?
同じ?
0639デフォルトの名無しさん2005/12/16(金) 13:48:47
>>638
Spring.NETは基本的なDI・AOPの機能は既に実装済み。
DB、トランザクション、WEB等の機能はまだ開発中みたいだな。

だけど、正直.NETでDIは使う気にならないな。
0640デフォルトの名無しさん2005/12/17(土) 13:07:47
>>639
何故?
0641デフォルトの名無しさん2005/12/24(土) 12:10:09
ActionSupportを使ってStrutsとSpring連携させてるんだけど
このクラスのテストケースをstrutstestcaseを使って書こうとした時に
Actionから呼び出すBeanを変えてテストケース書きたい場合
Bean定義のXMLを変えるしか方法がない?

テストケース側からビジネスロジックの注入を書けると楽なんだけど、、、
0642デフォルトの名無しさん2005/12/25(日) 01:54:24
自分で注入しちゃったら?
0643デフォルトの名無しさん2005/12/26(月) 01:34:51
Struts + Sringでエ○画像掲示板つくってみました。
Spring入れたほうが動作は安定して早くなりました。
0644デフォルトの名無しさん2005/12/26(月) 11:56:02
>>642

その方法がわからないんだよう
ポインタなぞあったら教えてぎぶみー
0645デフォルトの名無しさん2005/12/28(水) 07:47:52
Spring2.0って機能面ではどう変わったんですか?
0646デフォルトの名無しさん2005/12/28(水) 07:55:33
>>644
セッターインジェクションの場合
setXxx(value);

フィールドインジェクションの場合
xxx = value;

で注入できますw
0647デフォルトの名無しさん2005/12/28(水) 14:12:36
>>645
設定ファイルがXML Schemaベースになってる。
0648デフォルトの名無しさん2005/12/29(木) 12:31:25
Important new features include:

* Simplified, extensible XML configuration
* Powerful new Spring AOP features and AspectJ 5 integration
* Asynchronous JMS facilities enabling message-driven POJOs
* Spring Portlet MVC, a MVC framework for JSR-168 Portlets
* ... and much, much more

これって設定ファイルが結構変わるのかな?
個人的には三番目がようやくと言った感じ。

JmsTemplate はいろいろ思うように行かなくて
(非同期受信なし、リソースを開放するタイミングが制御できないなど)
結局新たに作成したものを使った。
JndiTemplate があればどうにかなった。
0649デフォルトの名無しさん2006/01/08(日) 02:38:17
フレームワークの議論ばかりしていて実際にハイレベルな
パフォーマンス&拡張性が要求される現場では役に立たない
方々乙かれさまです。
0650デフォルトの名無しさん2006/01/08(日) 03:19:20
どこでも役に立たない>>649よりはマシだけどな。
0651デフォルトの名無しさん2006/01/08(日) 03:40:27
>>635>>637>>649
0652デフォルトの名無しさん2006/01/10(火) 15:18:00
普通なら釣りなんだろうが現場見てると
本気でそう考えてるオサーンがたくさん居て死にそうになる。

さすがに起動時だけは遅いが、一度起動してしまえば
速度が気になったことはないな。
拡張性については具体的な例を挙げて欲しいな。
どういう要求が出た時にどういう対応をしたのかを。
0653デフォルトの名無しさん2006/01/11(水) 03:07:47
HibernateDaoSupportを使う場合にQuery#setFirstResults(int)やsetMaxResults(int)を
使うにはどうすればいいかご存じの方はいませんか?
getHibernateTemplate().find* ではQueryオブジェクトを渡せないし。。。
getSession()して自分で処理するしかないかな。
Spring 1.2.6 です。
0654デフォルトの名無しさん2006/01/11(水) 11:24:00
>>653
HibernateCallback
06556532006/01/11(水) 22:34:55
>>654
return getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
// クエリ投げて結果を返す
}
}
って感じですね。マニュアルにも載ってました。ポイントありがとう。
0656デフォルトの名無しさん2006/01/21(土) 20:54:23
ttp://pcweb.mycom.co.jp/news/2006/01/20/346.html
> Drools 2.5 BETA 2において提供されている拡張モジュールはdrools-decisiontables、
> drools-dotnet、drools-examples、drools-groovy、drools-ide、drools-io、drools-java、
> drools-jsr94、drools-python、drools-smf、drools-smftest、drools-spring、
> drools-spring-examples、drools-spring-jdk5。ベースとなる藻ジュースはdrools-base、
> drools-core、drools-core-3.0。

Springにも対応しているらしいルールエンジンだが、なんだかベースが不味そうだ。
0657デフォルトの名無しさん2006/01/21(土) 21:14:58
>>656
「藻ジュース」(・∀・)イイ
0658デフォルトの名無しさん2006/01/22(日) 10:27:33
いや飲みたくはない……
0659デフォルトの名無しさん2006/01/23(月) 21:26:19
今、新しいアプリ作るんで、まあ流行のSpringと扱い慣れているStrutsでと思っています。
まずはアーキテクチャを決めるために、いろいろサンプルを作ってみてるんですが、質問です。

Struts&Springの連携で、代表的なのは
 1) ActionSupport
 2) DelegatingActionProxy
 3) DelegatingRequestProcessor
の3つだと思うのですが、2) or 3) で決めかねています。

1)はせっかくなんでつまらないのでボツ。
残るはDelegatingActionProxyとDelegatingRequestProcessorですが、
機能的にどちらが良いのか分かりません。
どちらかと言えばActionを継承させてBaseActionを使っていたことが多いのですが、
RequestProcessorの方が上位ですよね。

アプリケーションは到って小規模なんでどちらでも同じだと思いもするのですが、
考慮すべき点や拡張性の点等、ご助言・苦言を頂けないでしょうか。

非常に基本的な質問で恐縮ですが、
0660デフォルトの名無しさん2006/01/23(月) 23:34:09
たいくつでつまらない技術が一番強い。
06616592006/01/24(火) 11:18:42
>>660
確かに、ごもっともだと思います。
実はこれまでの開発ではSpringを使う機会もあったのですが、
見易さ、改修性の高さ、開発規模から
ServiceはInterfaceを使わずに実装しました。
(さすがにDAOはiBatis使って分けましたが)

それに比べ、今回は10年前にCで作った参照のみのアプリの更新で
時間的な余裕もあるので遊びたいと思ってます。

APIも読んでみたのですが、XDOCLETを使うか、また宣言で問題があったら、
といった使い分けの程度しか理解できませんでした。
みなさん、どのような使い方されているのでしょうか、教えて頂けるとありがたいっす。
0662デフォルトの名無しさん2006/01/24(火) 13:57:58
>659
(1) と (3) は Struts に変更があったら、思い切り引きずられそう。
TilesRequestProcessor が出ようが新規に Action が発明されようが
涼しい顔して DelegatingActionProxy でラップするのみの (2) が好きですね。
(ていうか (2) しか使ったことないですけど。)
その分設定ファイルは煩雑になるわけですが。

自分の分かりやすいと思える方法でやるのが一番かと。
小規模でそれほど寿命も長くないのであれば、(1) も手っ取り早くていいと思いますよ。

XDOCLET は思ったほど便利じゃないと言うか、
開発の間に試行錯誤してると、結局手で書いたほうが速かったでした。
↑これは設計がまずかっただけかも知れません。
0663デフォルトの名無しさん2006/01/24(火) 23:17:11
>>662
Actionベースはやはり分かり易いですよね。
人数が多いそれなりの規模なら、間違いなくActionProxyでいくと思います。

いくつかサンプル作ってみたのですが、3種類の感想は

ActionSupport
-確かに楽だけど、Springの楽しさは十分に味わえない気が。
 でも実装はまんまActionなんで、いたって簡単。
 しかもプログラマの質がそれなりなら、自分入れて3人位いれば
 中規模まで行ける気がする。

ActionProxy
-実質これがStruts&Springの標準でしょう。
 至って堅牢なシステムが訳分からん害虫と一緒でもテストファーストで
 スムーズに作れそう。
 しかもこれまでのStrutsの資産も十分に生かせるんじゃないでしょうか。

RequestProcessor
-Controler以前の処理をガチガチにやるのであれば、やはりRequestProcessorだと
 思います。
 が、幾分硬すぎる気が。大人数のRUPには向いているかな。

自分ごときが作るシステムはそれほどクリティカルじゃないし、ユルイと思うのですが、
まあ当たり前、と言った感想でしょうか。

今回はActionProxyからやってみようと思います。
時間もある分、新しい人も多いんで。
また進展したら報告します。 いらんか。
0664デフォルトの名無しさん2006/01/25(水) 12:22:51
>また進展したら報告します。 いらんか。
最近スレが過疎ってるからチラシの裏でも問題ないかと。

>訳分からん害虫
でかいところが素敵なフレームワーク作ってるかと言うと
そんな仕事にありつけたことが一度もないのは運が悪いんだろうか。
06656592006/01/25(水) 22:18:20
>>664
なかなか難しく厳しい問題です、拡張性・メンテナンス性を含めた機能美で言えば。
確かに誰がやったん?ってひどいのもありますが、現状では仕方ないかとも思っています。

1つはレガシーのためです。
やはり遺物であっても今から見ればあほあほなRDB設計であっても
どうしても引きずらないではいられません。
例えばホストシステムの特定部分をWebに置き換える際、レガシーのデータやインターフェースは
その他のホストのためにつないでやらないといけません。
おかげでせっかくのDAOも、結局は???になってしまいがちです。
これまで私も挑んだのですが砕け散りました。

もう一つは、企業にとってみればシステムが構築されれば後は減価償却の対象でしかありません。
本来3ヶ月かけて作るべきものであっても即興で1.5ヶ月でつくれば評価されてしまいます、
掛けたくないのは人件費な訳ですから。
もちろんこんなシステムの維持のコストは高いです。が、トップの方々には見えてきません。
ユーザーからの機能追加要望があった、といえば、それなりのコストであれば通ってしまいます。
海外拠点との情報連携なんてつけてやれば大喜びです。
(フェーズ毎に見積もりきちんととって開発も難しいのが現状ですから・・・)

と、過疎板でうだつのあがらん社内SEが独り言ってみました。
0666デフォルトの名無しさん2006/01/25(水) 22:53:35
664ですがマ板向きな話題になりそうなのでこの件はクローズ。
脱線させてごめんなさい。
0667デフォルトの名無しさん2006/01/29(日) 00:03:48
すいません、Spring.NETの話題もここで良かったりします?
0668デフォルトの名無しさん2006/01/29(日) 09:45:51
わかんない。
けど、とりあえず書いてみれ
0669デフォルトの名無しさん2006/01/31(火) 10:23:30
>>659

>うだつのあがらん社内SE
お前様はオレですかw

疑問に思ったことを二つ。

>見易さ、改修性の高さ、開発規模から
>ServiceはInterfaceを使わずに実装しました。

何故だよ? facadeした方がP層から見たときに理解しやすいし、
実装ロジックを意識しないで済むと思うのだけど。あと例えば
君がAPI定義して、君の手下が実装する、なんて作業も
スムースになると思うのだけど。

あと、その場所にSpringのTransaction制御は適用してるの?
それとも君達でゴリゴリ書いているの?
そこがSpringの一番美味しい所だと思うのだが。

0670デフォルトの名無しさん2006/01/31(火) 10:24:23
<連投>

>流行のSpringと扱い慣れているStrutsでと思っています。

扱い慣れているとはいえ、何故に死滅が確定している
現verのStruts? 同じ社内SEの立場として言うが、
それって将来に禍根を残すんじゃないの?
特に、struts-taglibを使うのは忌むべきことじゃないのか?

高度にクリティカルじゃなくてもいいなら、素直にJSFを
採用すりゃいいじゃん。もし、strutsじゃなきゃ人材を
確保できねぇと言うなら、せめて
org.springframework.ui.velocityパッケージの研究を
してから決定した方がいいんじゃないの?

0671デフォルトの名無しさん2006/01/31(火) 12:13:28
死滅とかはNG Wordに入れてる人も居るから避けたほうが吉。

JSF はもう少し枯れてからの方が良くない?
今のところ、Velocity でやっちゃうのが一番直感的に思う。
0672デフォルトの名無しさん2006/01/31(火) 12:24:21
うちで使ってるアプリケーションサーバーはJSPしか動かねぇ
Servletすら使えない
0673デフォルトの名無しさん2006/01/31(火) 15:42:57
釣りには屈しない
0674デフォルトの名無しさん2006/02/01(水) 09:47:13
おぉ、まだ居る方が。

>>669
ServiceのInterfaceについては、いかに害虫がオブジェクト指向を知らなくても
オブジェクト指向らしいJavaになるか考えてこうなりました。
まずあの方達はクラスを上手く切り出せないんです、最初は。
で、下手にInterfaceやって使いまわしなんて考えると開発中の手入れが
恐ろしいことになり、ある意味好き勝手にやってもらいました。
で、DAOについてはメソッドが明確なんでInterface切ってやってもらってます。
iBatisを使ってるんですが、こいつだとDAOの中のみでTransaction制御できるんで
助かります。
これだと統合テスト中にこっちでクリティカルな部分がすぐいぢれるんで楽なんですよ。
06756592006/02/01(水) 10:14:07
書き忘れですが、674 = 659です。

Strutsについては、JSFでの置換えも検討しましたが、
今回、自分以外はJavaでWebやるの初めてなんですよね。
やはりブラウザからRequestをServletで受けて、というのを実感
し易いのはStrutsかなぁ、と思います。
JSF、VBちっくにドラッグ&ドロップでできてしまうんで、最初からこれだと
裏の理解が薄く後々に生きない気がします。
それと社内SE的にはもう少し枯れてからで良いかなと、正直思います。

Taglibについては、個人的にこれ以上覚えられるかー、ということで
beanとlogicにのみ制限しています。
まあ多少beanを拡張はしていますが。。。

個人的には、Struts → JSFで行きたいなと、Viewについては。
06766692006/02/01(水) 10:53:44
>>659

>DAOの中のみでTransaction制御

これって複雑なことをやろうとすると破綻しないかい?
複数のテーブルを更新するのもDaoのメソッド単位になる、
従って肥大したDaoImplを書かざるを得なくなる、という原因で。

オレのやり方だとこんな感じだ。

<ServiceLayer>
public void deposit(Account account, Money increasedMoney){
  accountDao.update(account);
  revenueDetailDao.insert(account, increasedMoney);
}

で、トランザクションはあくまでserviceLayerに置く。つまり上の
depositメソッドに対してPROPAGATION_REQUIREDを設定する。

オレはさらに、dao層、上の例ではaccountDao.updateと
revenueDetailDao.insertに対しては
PROPAGATION_MANDATORYをかけている。
これによりserviceLayerを通さずにDaoに触ったら即座にアポーン。

君の「DAOの中のみでTransaction制御」だと、上の二つの
メソッドを一つにまとめないと原始性を維持できないのでは?
勘違いだったらスマソ。
06776592006/02/01(水) 12:13:46
>>669
DAO単位で考えれば原始性を維持できない可能性は仰る通り存在します。
でも、実際の使用で考えれば、多少複雑なデータはユーザに紐付いているわけで、
2重ログインを防げば、問題無しという訳です。
美しくないことは、確かですが。

Springでのトランザクション管理は、まだ読んだだけですけど、実装も含めスマートですね。
トランザクション属性なんか、いかにも楽できそうで。
DAOは何を使われてるんですか?
今回はHibernateが親和性も高く、情報も多いんで使おうかと思ってます。
06786692006/02/01(水) 13:12:05
う〜ん、オレにはそれはチョト怖く感じる。

更新が途中で落ちる可能性なんてゴロゴロしてるワケだし。。。
(オレには納得いかんが)落ちる可能性を完全無視するとしても、
その場合は最低でもペシミスティックロックで組まんとイカンと
思うのだけど。。。

頼む、トランザクション管理層をserviceLayerに持ち上げとくれ。
Spring使えばチョチョイのチョイだ。

iBATISは好きだぉ。
0679デフォルトの名無しさん2006/02/01(水) 16:24:19
>>669
仰ってることが分かってきました。
自分が話しをごっちゃにした予感です、害虫さんと自分の立場を。

害虫さんのトランザクション管理は、はっきり言って、信用してません。
で、問題があった際にDAOとServiceを引っ張って考えるのはしんどいんで
DAOについてはiBatisのAutoCommitにして、自分はServiceに集中できるように
している、という話です。

読み返してみると、確かに訳分からん話してますね、自分。

そういえば、SpringとベストマッチなDAOって何でしょ?
iBatisもいけるようだとネットに載ってた気がしますが、やはりHibernateですかね?
他に面白いのないでしょうか。

0680デフォルトの名無しさん2006/02/01(水) 20:56:14
HibernateはDBを一から設計するっていうならおすすめ
既存のDBがからむならiBatisの方が無難だとおもう

害虫さんがいてiBatis学習コストが気になるっていうなら
Spring JDBCでもいいんじゃない?
0681デフォルトの名無しさん2006/02/02(木) 01:17:25
>>675
>Taglibについては、個人的にこれ以上覚えられるかー、ということで
>beanとlogicにのみ制限しています。

Strutsでやるんなら最低限必要なStrutsタグはhtmlタグのみで、後はJSTLで置き換えるのがお勧め
JSTLはJava EE5に含まれることが決定しているし、JSFも1.2からはJSTLと連携出来るようになる
■ このスレッドは過去ログ倉庫に格納されています