Java Spring Frameworkを語るスレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG乱立するフレームワークと競合するプロトコルの嵐のなかで、
リスクの高い決断を余儀なくされているJavaデベロッパ、プ
ロジェクトマネージャに対する福音です。
語るべし。
0742デフォルトの名無しさん
2006/03/32(土) 00:26:430743デフォルトの名無しさん
2006/03/32(土) 01:38:390744デフォルトの名無しさん
2006/03/32(土) 05:59:35「Java2EEなんかクソくらえ」
0745デフォルトの名無しさん
2006/03/32(土) 06:03:370746デフォルトの名無しさん
2006/03/32(土) 10:39:20*エイプリルフール中止のお知らせ*
本年度、ITバブル崩壊の余波、またライブドア事件の混迷、楽天ゴールデンイーグルスぶっちぎり最下位など、
悪条件の重なりによる株価低迷が2ちゃんねる運営費にも多大なる影響を与え、
火の車である今の財務状況を鑑みるに、エイプリルフールの全面中止もやむなしという判断にあいなりました。
ご期待されていた皆様には大変申し訳ありませんが、どうぞよろしくご理解いただければ幸いです。
また、妄言民族と呼ばれ、近隣アジア諸国に多大なる苦痛を与えている日本国民としてこれを良い機会と考え、
例えエイプリルフールだとしても嘘を無くし、世界平和に貢献できる公明正大な言論の場を標榜すべく襟を正しつつ、
2ちゃんねるはエイプリルフールの根絶に今後とも邁進していく所存でございます。
0747724
2006/04/02(日) 12:30:05>AutoCommitも無効にしている場合、明示的にトランザクションを開始する必要があるのか?
そうじゃ。RDBにもよるが、読み取り一貫性を実現するために、大体がテンポラリ領域に
データをコピーしている(OracleとSQL Serverは少なくともそう)。
この事から、一覧など頻繁に閲覧されてデータ量が多い場合、直ぐエラーになっちまう。
(同時アクセスが多いと、Tempがクリアされる前に次が来ちゃうからじゃ)
このエラーを受けてDB屋にTemp領域増やせっていうのはナンセンス。
もちろん、ビジネスロジック上大きなTempが必要な場合もあるからそれは、
ちゃんと見積もりをDB屋に伝えればいい。大きくするのに否定的な訳じゃなく
PGの手抜きに対して文句を言ってるんじゃ。
また、上記の事だけじゃないが、上記だけからでも結構コスト(負荷)
が掛かることは言うまでもないよな。
0748デフォルトの名無しさん
2006/04/02(日) 13:10:03> そうじゃ。RDBにもよるが、読み取り一貫性を実現するために、大体がテンポラリ領域に
> データをコピーしている(OracleとSQL Serverは少なくともそう)。
オラクルは違うだろ。
データがコピーされるのは読み取り時じゃなくて更新時。
コピー先はテンポラリじゃなくてUNDO表領域。
> この事から、一覧など頻繁に閲覧されてデータ量が多い場合、直ぐエラーになっちまう。
頻繁に閲覧されてもそれだけじゃエラーにならない。
頻繁に更新されている時にのんびり読んでるとORA-01555
本当に理解して書いてるか?
0749デフォルトの名無しさん
2006/04/02(日) 15:04:58>
> 頻繁に閲覧されてもそれだけじゃエラーにならない。
> 頻繁に更新されている時にのんびり読んでるとORA-01555
> 本当に理解して書いてるか?
激しく同意。
付け加えるなら、Oracleではトランザクションの有無にかかわらず
文レベルの一貫性は常に保証しようとするから、
> 頻繁に更新されている時にのんびり読んでるとORA-01555
という状況はトランザクションの有無にかかわらず起こりうる。
だから、>747の主張は少なくともOracleには当てはまらない。
0750740
2006/04/02(日) 18:58:45スマソ&サンクス
考えてみれば、サービス層でAOPトランザクション管理していると、
複数Actionが複数サービス呼び出す時点で複数トランザクションになる…
んでOpenSesseionInViewしてもHibernateのSessionが1つに保たれるだけですな。
結論すると、2Actionだと2トランザクションでいくしかないのか。
0751731
2006/04/03(月) 14:34:04>>747
>>748
>>749
読み取り一貫性に関しての詳細は置いておいて元の話だとOracleでは
以下になるんじゃないかな?
必要な読み取り一貫性が文をまたがるのであれば読み取り専用の
トランザクションを明示的に開始する必要がある。
必要な読み取り一貫性が文レベルでよいのであれば明示的にトランザクションを
開始しなくても良い(コネクションを生成した際のトランザクションがずっと使われている)
但し、更新処理の前にはCommitを発行して明示的にトランザクションを開始する必要がある
どちらにしてもOracleで更新やロックを伴わないトランザクションでCommitを行っても
無視される(v$sesstatのuser_commitは増えない)のでパフォーマンスには大した影響を与えない
結局のところ空コミット(参照のみトランザクションでのコミット)のコストの話なのかな?
0752740
2006/04/07(金) 20:14:03(DelegatingActionProxy、
StandardXAPoolDataSource、
JOTM、
OpenSessionInViewFilter、
JtaTransactionManager)
のアプリが作れたよ…
さて、次はSeasarも試してみるか…
0753デフォルトの名無しさん
2006/04/07(金) 23:51:410754デフォルトの名無しさん
2006/04/08(土) 06:37:500755デフォルトの名無しさん
2006/04/08(土) 13:40:24DB設計が腐っているならiBATIS
どっちも便利であるのは間違いない。
適材適所で。
0756デフォルトの名無しさん
2006/04/27(木) 06:56:47リモート呼び出しやORM(hibernateで)は置き換えることが
できたけど、EJBのMessage Driven Beanを代替するものが
見つからない。MDB便利すぎる。
0757デフォルトの名無しさん
2006/04/28(金) 01:17:20SpringのViewクラスを使用したい場合は
どうすれば良い?
0758デフォルトの名無しさん
2006/04/28(金) 21:03:440759デフォルトの名無しさん
2006/04/29(土) 20:34:44既存システムとしてStrutsの部品があって
ExcelとかPDFを出力したいので
SpringのViewを使用する
0760デフォルトの名無しさん
2006/04/29(土) 20:36:330761デフォルトの名無しさん
2006/05/08(月) 16:21:07web.xmlとXXX-servlet.xmlを調整すれば、実現できそうだけど?
0762デフォルトの名無しさん
2006/05/09(火) 09:52:00って何なのこれ?
0763デフォルトの名無しさん
2006/05/10(水) 18:31:220764デフォルトの名無しさん
2006/05/11(木) 00:10:50setterの名前さえ整合性が取れていれば。
0765デフォルトの名無しさん
2006/05/19(金) 09:53:31Rodが語った2.0@JavaOne
https://www28.cplan.com/cb_export/PS_TS-3744_277744_124-1_FIN_v2.pdf
user:contentbuilder
pass:doc789
0766デフォルトの名無しさん
2006/05/19(金) 14:31:03thx.
Message-Driven POJO なんて構想もあったのか。初めて知った。
Extensible XML Confinguration は
俺様設定が乱立しそうでちと怖いな。
0767デフォルトの名無しさん
2006/05/19(金) 14:32:45そりゃできるだろ。
0768デフォルトの名無しさん
2006/05/19(金) 16:50:260769デフォルトの名無しさん
2006/05/20(土) 00:21:20場合、どうしてます?
いい方法を考えているうちにgetBean("BeanId")のコードがいっぱいできた
まんまプロジェクト終盤にきてしまった。。。
0770デフォルトの名無しさん
2006/05/20(土) 00:56:56getBeanId()のメソッドを用意して静的にアクセスできるようにはしてる。
0771デフォルトの名無しさん
2006/05/20(土) 00:59:340772デフォルトの名無しさん
2006/05/20(土) 01:01:22StrutsならDelegatingActionProxy使えばいいし
TapestryもSpringと連携させてコンポーネントにInjectしてもらえるし。
0773デフォルトの名無しさん
2006/05/20(土) 06:12:45どこからでもルックアップできてしまうので収集がつかなくなるおそれはあるけど、
>>770 のように bean の種類ごとにルックアップするメソッドを用意しておけば
いく分見通しもよくなると思われ。
0774デフォルトの名無しさん
2006/05/20(土) 08:56:55別にいいけど
0775デフォルトの名無しさん
2006/05/20(土) 12:58:250776デフォルトの名無しさん
2006/05/20(土) 13:05:370777デフォルトの名無しさん
2006/05/20(土) 15:56:24サービスロケータに依存してしまうからですよ。
0778デフォルトの名無しさん
2006/05/20(土) 15:59:55単純にどっちが上とかはいえない
ってDIってネーミングつけた人いってなかったっけ?
0780769
2006/05/20(土) 16:55:15ドメインモデルとは相性が悪いのでしょうか。やはり。
いまさら設計をトランザクションスクリプトにできないし。。。
まっ宣言的トランザクションだけでもかなり有効であることには
変わりないわけだし。
0781デフォルトの名無しさん
2006/05/20(土) 22:52:38場合
ってどういう場合なんだろう?
素朴な疑問。
0782デフォルトの名無しさん
2006/05/21(日) 03:47:30コールバックしてくれるという機能があるけど
イベントリスナには依存性注入のチャンスがないのでApplicationContextを使う。
0783デフォルトの名無しさん
2006/05/21(日) 07:33:25ここで解説されているみたいなことをやるべし
http://www-128.ibm.com/developerworks/edu/j-dw-java-springswing-i.html
0785769
2006/05/22(月) 15:49:50たとえば親子関係をなすドメイン(請求書と請求明細)などは
ロジック上で画面の内容をドメインに変換する必要があるのですが
明細クラスのような1クラスで複数インスタンス必要になる場合は
betBeanで必要数分インスタンスを生成する必要がある。
みたいな場面です。
0786デフォルトの名無しさん
2006/05/22(月) 16:54:00内部でインスタンスを生成する必要があるロジックの場合は、
そのインスタンスを生成するFactoryクラスをインジェクトする
ってのをよくやる。
0787デフォルトの名無しさん
2006/05/23(火) 22:20:49アナパタ時代の設計にDI使おうとすると死ねる
0788デフォルトの名無しさん
2006/05/24(水) 11:41:00higaタソが提唱しているシンドメインモデルならドメインロジックだけDIにして、ドメインモデル(データ)
だけ通常の手段(new)で生成すればよいのでは?
ttp://d.hatena.ne.jp/higayasuo/searchdiary?of=5&word=%2a%5bgoya%5d
0789デフォルトの名無しさん
2006/05/24(水) 13:07:20http://cm.thinkit.co.jp/?4_23934_12965_1
0790デフォルトの名無しさん
2006/05/24(水) 14:00:57オレもそうしてる。ドメインのPOJOは自分でnewする方がOOしてる気分になるね。
DIに生成させるのはServiceLayer〜DataStoreLayerのドメイン『操作』クラス達だぬ。
>>789
キャハキャハ。なんかヒガタソ最近人格が変わった? JavaOneでイジメでもくらったのかな。
PowerdBySpringのフレームワークがこんなにポコポコ誕生している現状を見れば、
1.2.xとスピード競争やった所で焼け石に水ダヌ。
AspectJが推奨スタイルになる2.0のこと知らぬ訳ではないだろうにね。
別にRodファンではないけどさ。
0791デフォルトの名無しさん
2006/05/24(水) 15:39:44データは普通に new したらいい。
なんで getBean() しようとしたのか教えてくれ。
メリットが何一つ思い浮かばない。
0792788
2006/05/24(水) 17:02:50激しく同意。
ビジネスロジック周りでDIしたいと思うなら、
ドメインビジネスとしてクラスを切り分ければいいのでは?と思った次第。
0793769
2006/05/24(水) 22:06:40>ドメインビジネスとしてクラスを切り分ければ。。。
ということは、私の思うトランザクションスクリプト + DAOという
組み合わせがDIでは有効という考えと同意と考えられます。
そちらのほうが合っているという結論ですよね。結局は。
DIを利用する上では状態をもつドメインはミスマッチであるということですね。
0794769
2006/05/24(水) 22:24:03>メリットが何一つ思い浮かばない。
785であげた例も悪かったですが。。。
1.getBeanするドメインが他のドメインを持っている。
オブジェクトグラフの一気取りが可能(Factory作ればすむという話もあるが)
2.やはりInterfaceを実装する実クラスをコードに書かなくてよい
この2つはかなりのメリットです。
もちろん前提がドメインロジックとデータの分離であれば、データに対して
getBeanするメリットが何もないというのは理解できますが。
DIを利用する上では状態をもつドメインはミスマッチである
けれども
上記の理由があるためドメインモデルでもDIを採用しました。
けれども
getBeanする部分をもっといいやり方はないですかねーという質問でした。
0795デフォルトの名無しさん
2006/05/25(木) 01:09:09one-to-manyなんかの関係は勝手に構築してくれる。
1の芋づる式にとりたいというだけでgetBeanするのはDIの役割とは違う希ガス。
(もしかして、DAOが生成するデータが≠ドメインモデルな設計?)
>2.やはりInterfaceを実装する実クラスをコードに書かなくてよい
はちょっと意味が理解できん。スマソ。解説キボン。
>DIを利用する上では状態をもつドメインはミスマッチである
と
>上記の理由があるためドメインモデルでもDIを採用しました。
は納得できないなぁ。
そう考えた理由は?
あと、ビジネスロジックを切り出しただけでトランザクションスクリプトって呼ぶの?
SQLで記述するのか、呼び出し側の言語で記述するのか、が
ドメインモデルとトランザクションスクリプトの最大の相違だと思ってた。
ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?DomainLogicAndSQL
0796デフォルトの名無しさん
2006/05/25(木) 01:14:00結局ところ、ドメインモデルのサポートとしてDIを使うくらいにしておきたいと
思った。
もしどうしてもどっちかを取らなくちゃいけなくなったら、サービス層を内製しても
ステートフルなドメインモデルを選択したい。Hibernateとか使うと、リッチなJava
オブジェクトをそのままDBにマッピングできたりするし。
それに、そっちのほうがオブジェクト指向っぽい感じがするから。
0797デフォルトの名無しさん
2006/05/25(木) 15:57:44> 上記の理由があるためドメインモデルでもDIを採用しました。
の結論に至った理由が理解できなかった。
実際何を getBean() したのかが分からない。
getBean(リテラル文字) まくりな状況より
new した方が可読性高いし変なキャストもせずに済む。
設定ファイルで singleton="false" を書き忘れる心配もない。
どうしても生成部分を隠したいなら、
簡単な Factory を作って、そいつを DI でセットしたらいい。
0798デフォルトの名無しさん
2006/06/29(木) 07:36:240799デフォルトの名無しさん
2006/07/04(火) 09:35:38つか、2.0期待sage
0800デフォルトの名無しさん
2006/07/04(火) 20:58:53場所 所沢(池袋・高田馬場から直通)
よろしくおねがいします
i−want−to−study−java@hotmail.co.jp
(アドレスは全角で書いてあるので半角に直してください)
0801デフォルトの名無しさん
2006/07/05(水) 03:49:260802デフォルトの名無しさん
2006/07/05(水) 16:53:11それじゃ労働しようとする意欲湧かねぇな。
君が♀なら別。
0803デフォルトの名無しさん
2006/07/05(水) 17:12:100804デフォルトの名無しさん
2006/07/05(水) 19:13:480805デフォルトの名無しさん
2006/07/05(水) 19:33:12つーかスレタイにJavaが含まれているスレに無差別絨毯爆撃しているだけだから無視するのがよろしいかと
0806デフォルトの名無しさん
2006/07/05(水) 22:35:28>つーかスレタイにJavaが含まれているスレ
ブックマークしていながら、今回のマルチが出るまで気づかなかった。
0807デフォルトの名無しさん
2006/07/07(金) 15:39:40前は XML-Object Mapping の章しかなかったのに。
そろそろまじめに調べ始めるかな。
0808800
2006/07/17(月) 21:33:22専門学校などでJavaを勉強されていて夏休みだけ教えたいという方も歓迎です
0809デフォルトの名無しさん
2006/07/18(火) 12:06:260810800
2006/07/18(火) 12:49:110811デフォルトの名無しさん
2006/07/18(火) 14:19:480812デフォルトの名無しさん
2006/07/20(木) 22:25:560813デフォルトの名無しさん
2006/07/21(金) 00:57:25獄長乙
0814デフォルトの名無しさん
2006/07/21(金) 23:57:04フォームのパラメータ名とCommandのフィールド名を
任意にマッピング(バインド)する方法がわからない…
0815デフォルトの名無しさん
2006/07/24(月) 17:54:580816デフォルトの名無しさん
2006/07/26(水) 12:31:582.0 とか関係なしに
・EJB3.0 に懐疑的
・ORM は最終的に JDBC に回帰する
な姿勢が良かった。
あと Acegi の記事が後で役に立ちそう。
0817デフォルトの名無しさん
2006/08/01(火) 13:18:00豆蔵が書いたのねコレ。漏れは以前、長谷川ダンナの話を
聞いたことがあるのだが、
「Hibernateは確かに優れたプロダクトだが万能じゃない。
陥りやすい穴もあるから慎重に検討してから導入した方がいい。」
って言ってた。禿同だったんだけどね。今回の記事もその思想が
根底に流れているみたいだね。
JPAマンセーな流れの中でこういう視点は貴重だと思う。
0818デフォルトの名無しさん
2006/08/09(水) 01:22:18のデータ受け渡しってPOJOでもDTO使った方がいいのかな?
直にビジネスオブジェクト受け取った方がコーディングが楽なんだが・・・
0819デフォルトの名無しさん
2006/08/10(木) 09:35:55http://www.atmarkit.co.jp/fjava/kaisetsu/j2eewatch02/j2eewatch02.html
から抜粋
このように、POJOをそのままEntity Beanとして扱うことができれば、従来のEJB開発で
Web層とのデータ交換に利用されてきたDTO(Data Transfer Object)パターンはもはや
不要となる(実のところ、J2EEパターンの多くはEJBの使いにくさを緩和するために
生み出されたアンチパターンであるという見方もある)。
0820デフォルトの名無しさん
2006/08/15(火) 22:23:19「Web層」がBだけの役割であれば、M に B を依存させないために、
DTO(のようなもの)は必要のような気がする。
表示で使うPOJOを直接永続化するということは、
逆に永続化の都合に(N:N関係は扱えないとか)、
表示部のロジックが依存してしまう、ということになるんじゃないの?
0821デフォルトの名無しさん
2006/08/16(水) 10:13:12http://www.amazon.co.jp/gp/product/4797334223/
特にオレが知りたいのは、
・2.0を紹介してるか。
・JPAを使ったWebApp例で、マンセー記事ばかりではなく
注意点やアンチパターン的な解説もしているのか。
・SpringWebServiceの解説あるのか。
・SpringRichClientとかAcegi(SpringSecurity)の解説あるのか。
でも、読んだ印象でも何でもいいから知りたい。
0822デフォルトの名無しさん
2006/08/17(木) 11:01:55> 表示で使うPOJOを直接永続化するということは、
> 逆に永続化の都合に(N:N関係は扱えないとか)、
> 表示部のロジックが依存してしまう、ということになるんじゃないの?
シンプルなアプリなら問題ないと思うんだが。
ただ、発想としては「永続化するPOJOを直接表示する」が正しいかと。
どうしても気になるなら、
サービス層で永続化用DTOからプレゼン用DTOへ変換してやれば良いと思う。(higaタソのシンドメインモデルってやつね)
問題は、プレゼン用DTO・変換ロジックを実装するコストに対して価値があるかどうか。では?
0823822
2006/08/17(木) 17:21:40× シンドメインモデルってやつね
○ Dxoってやつね
あと
ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?LocalDTO
0824デフォルトの名無しさん
2006/08/22(火) 09:50:14【IBM】Introduction to Spring 2 and JPA
https://www6.software.ibm.com/developerworks/education/j-spring2/
0825デフォルトの名無しさん
2006/08/25(金) 23:20:47Seasarの連中もキモイけどこれもイタイ。
0826デフォルトの名無しさん
2006/08/25(金) 23:23:36ログインパスワード教えて
0827デフォルトの名無しさん
2006/08/26(土) 09:06:37ゆるされるはんいじゃない?
0828デフォルトの名無しさん
2006/08/26(土) 10:29:200829デフォルトの名無しさん
2006/08/26(土) 23:38:210830デフォルトの名無しさん
2006/08/27(日) 23:31:05仲間由紀恵は沖縄出身
0831824
2006/08/28(月) 09:30:04ごめんごめん、先に米IBMの会員登録してくれ。
無料&誰でもOKね。
https://www.ibm.com/account/profile/us?page=reg
0832デフォルトの名無しさん
2006/08/28(月) 12:16:590833デフォルトの名無しさん
2006/08/28(月) 12:43:340834824
2006/08/28(月) 18:21:41Java server applications need not be difficult and tedious to create.
Now in its second generation, the lightweight Spring framework adds a large suite of features
that make it simple for even new server application developers to use.
One key enhancement is Spring 2's integration with the Java Persistence API (JPA),
a cornerstone of the Enterprise JavaBeans (EJB) 3.0 specification. In this tutorial,
learn how to create server applications from scratch using the Spring 2 framework.
0835824
2006/08/28(月) 18:26:13Before you start
For almost a decade, the "proper" way to build a robust and
maintainable server-side Java application has been the exclusive domain
of the Java 2 Enterprise Edition (J2EE) platform.
J2EE applications are built using Enterprise JavaBeans (EJB) technology
and run on servers that facilitate deployment and provide rich container services
(such as the management of database connections and pooling).
These servers also add value by providing deploy-time declarative control of
important features such as security and transactions. Although versatile,
the J2EE development process involves many tedious and repetitive tasks
and the creation and maintenance of large numbers of source code files.
Many lightweight Java frameworks claim to simplify server application development,
but none matches the Spring framework in maturity and popularity (see Resources).
Now in version 2, Spring was designed from day one to simplify the server application
building process.
0836デフォルトの名無しさん
2006/08/28(月) 18:26:48Instead of approaching development from an all-in-one container perspective,
Spring aims to provide just enough support for an application's requirements
without the burden of a full-fledged container environment. Spring eliminates code bloat:
you can code and test business objects completely outside of any container,
letting your business-object code remain simple, testable, maintainable, and reusable.
With the arrival of Java EE 5 and EJB 3.0, the J2EE community is poised to meet
the Spring developer community. EJB 3.0 supports the notion of lightweight POJOs
(Plain Old Java Objects) as EJB components and introduces the Java Persistence API (JPA),
a persistence mechanism that can run externally to the container.
This persistence mechanism automates the movement of information between business objects
and external relational databases.
Version 2 of the Spring framework has continued its evolution and also leverages JPA
as a persistence mechanism.
In this tutorial, you will work with Spring 2 and JPA persistence.
You'll create a server application using the Spring 2 framework, complete with access
to a DB2 Express-C database. The Eclipse IDE facilitates the development of the Java application
and enhances your exploration of the Spring 2 framework.
これ以上は面倒見ない。
0837デフォルトの名無しさん
2006/08/29(火) 10:38:46これってAcegiと被ってないんだろうか・・・?
どうやって棲み分けしようとしているのか、理解している人いたら教えて。
0838デフォルトの名無しさん
2006/08/29(火) 17:36:04LDAP ってセキュリティとはあまり関係ないのでは。
一種のDBを操作するプロトコル(書きより読みに重点)
程度のもんだと思う。
0839デフォルトの名無しさん
2006/08/30(水) 08:04:35Acegi使ったサンプルは載ってた。
0840デフォルトの名無しさん
2006/08/31(木) 10:13:57ttp://codezine.jp/a/article.aspx?aid=528
0841デフォルトの名無しさん
2006/08/31(木) 11:59:47> 過疎スレ保全
> つか、2.0期待sage
Web2.0に期待揚げ
■ このスレッドは過去ログ倉庫に格納されています