Java Spring Framewor ..
[2ch|▼Menu]
369:デフォルトの名無しさん
05/04/23 02:19:57
現実的にはSpringかと。
ただ、オープンソースのプロダクトの利用数を数えるのは難しい上、両方そこまで大々的には使われてないから実数はよくわからない罠。

370:デフォルトの名無しさん
05/04/23 22:42:23
1.2のRC2が出てるが、
なんか役に立ちそうな機能追加された?

371:デフォルトの名無しさん
05/04/24 01:21:41
Hibernate3対応かな?

372:368
05/04/24 19:14:40
>>369
thx!

373:デフォルトの名無しさん
05/04/24 19:30:21
>>372
ただ、Spring使ってる人のまわりではSpringばっかりだし、Seasar2使ってる人のまわりではSeasar2ばっかりだから、人の意見はあまりあてにならんけどね。

374:デフォルトの名無しさん
05/05/06 13:30:15
すまん、DIはよく知らんのだが、よくEJBは××だからDIまんせー的な
発言見るんだけど、そもそもDIってリモートコールできんの?

375:デフォルトの名無しさん
05/05/06 13:58:11
DIパターンとリモートコールは全然関係ない領域の話だとおもうがね。

376:デフォルトの名無しさん
05/05/06 14:30:44
一つ聞きたいんですが
URLリンク(wiki.bmedianode.com)
↑のページを参考に beanRefContext.xml を書いたのですが
Spring が DEBUG メッセージを吐くのでちと気持ち悪いです。
ログは汚れるものの、期待通りの動作はしています。

型の合うコンストラクタが見つからないとか、そんな感じのメッセージなのですが
確かに ClassPathXmlApplicationContext のコンストラクタに
java.util.ArrayList を持つものはない模様で
この辺りは「一通りコンストラクタ調べたけどないっぽいから
String[] だと思って処理しよう」とかそんな流れでしょうか?
この辺り、ログを汚さないでスマートに指定する方法を教えていただけないでしょうか?

377:デフォルトの名無しさん
05/05/06 18:37:22
Springをちょっとずつ勉強しててDIのあたりまでわかったところなんですが、
AOP周りにも触ってみようと思ってます。

で、AOPって、具体的にはどんなことに使えるのかサッパリわかりません。
ログとる例ばっかりで、他に出来ることはないのか?って感じなんですが、
何に使うんですか?AOP

コンテナ側では使ってるのは理解できるんですが。
具体的な用途や、参考になるページがあったら
すみませんが教えてもらえないでしょうか。

378:デフォルトの名無しさん
05/05/07 03:33:48
AOPの二大用途といえば、

- ロギング
- トランザクション

だわな

379:デフォルトの名無しさん
05/05/07 05:15:36
Webの場合はそのくらいだな。

380:デフォルトの名無しさん
05/05/07 06:30:47
GUIのプログラムの場合、データ変更の画面への通知もAOPがいい。

381:デフォルトの名無しさん
05/05/07 06:33:45
イベントリスナーとかの代わりにって事?

382:デフォルトの名無しさん
05/05/07 06:58:12
GUIモノだと、だいたいセッターの後でnotifyみたいなの呼び出す必要があって、かなりめんどい。
それがAOPで楽できる。

383:デフォルトの名無しさん
05/05/07 08:04:05
効率を無視していいなら良いんじゃないの


384:デフォルトの名無しさん
05/05/07 08:38:48
無視していいわけないけど、影響が少なければ問題ない。

385:377
05/05/07 12:01:00
どうもありがとうございます。Web系なんですが、ログもトランザクションも
Springだとそのための手段が用意されてるのでなかなか使い道が難しいですね。

昔GUIも作ったことあったのですが、その例もなるほどなって思いました。
面倒ですものね。「横断的関心」ってやつがちょっとイメージできた気がします。

探してたら、こんなページも見つけました。難しいので理解できてませんが
URLリンク(www.oucc.org)


386:デフォルトの名無しさん
05/05/07 12:03:14
あ、すいません。ログはないですね。

387:デフォルトの名無しさん
05/05/08 13:35:51
>>386
org.springframework.aop.interceptor.TraceInterceptor
org.springframework.aop.interceptor.DebugInterceptor

388:デフォルトの名無しさん
05/05/08 18:55:53
>>375
質問した者だが

いやそうじゃなくて、じゃあそもそもEJBと比較して意味あんのかって意味。

分散オブジェクト技術とそうでない技術なら話してる土台が違うわけで
DI>>EJBとかわけわかんないんだけど。

389:デフォルトの名無しさん
05/05/08 19:18:26
>>388
EJBは分散が必要ない人にも分散を前提としためんどうな手続きを強要してた。
ほとんどの人に分散は必要なかった。
ほとんどの人にDI+ORM > EJB。

390:デフォルトの名無しさん
05/05/08 19:21:41
>>389

てか分散使わないのにEJB使ってる時点でどうかと・・。
まぁ後者のORMとかはわからなくもないが、EJBは
どっちかっつーと、というかどう考えても分散オブジェクトなわけで。

391:デフォルトの名無しさん
05/05/08 19:35:40
で、だからEJB使わずDI+ORMでいいじゃんとなったんでしょ。

392:デフォルトの名無しさん
05/05/08 21:33:10
>>391があたりまえだがいいことをいった。

393:デフォルトの名無しさん
05/05/08 22:17:34
>>390
まあ、EJBには分散以外にもいい点があるわけで。
宣言的なトランザクションとか、SQLを直接書かないDBMSアクセスとか。

そういEJBのよい機能は使いたいけど、
EJBは動かすの面倒、重い、コンテナに依存してテストしづらい
ってのがあって、その打開策としてSpringをはじめとして色々な
ソフトが出てきているわけだよな。

394:デフォルトの名無しさん
05/05/08 23:26:16
EJBってのはむしろCORBAの世界で
生きるはずなのだが。

395:デフォルトの名無しさん
05/05/08 23:38:34
それはない。

396:デフォルトの名無しさん
05/05/12 14:50:52
Spring+HibernateでWebアプリ開発しようとしているんですが
applicationcontext.xmlのsessionFactoryのところで

java.lang.NoClassDefFoundError: net/sf/ehcache/CacheException
となってしまいます
でも、Hibernateのソースを見ても
net.sf.ehcache.CacheExceptionというクラスは存在してないみたいなんですが
どういうことなんでしょうか?

Hibernateはspring-framework-1.1.5の中に入っていたものを使用しています



397:デフォルトの名無しさん
05/05/12 19:55:24
そりゃeCacheのjarを用意していないからでは

398:デフォルトの名無しさん
05/05/14 18:48:46
質問があります。どうしてもわからないので教えてください。

applicationContext.xml に登録したオブジェクト(bean)の中の処理でファイルを読もうとしています。
このクラスは HttpServlet を継承していません。(特にクライアントからの要求を受け付けるわけではないので
そうしていました)したがって、web.xml には mapping していません。

この状態で、(webapps/project)/WEB-INF/data/ といったディレクトリからファイルを読み出したいので、
絶対パスを取得しようとしていますが、わかりません。

ApplicationContext appCtx = new ClassPathXmlApplicationContext("applicationContext.xml");

で、コンテキストは取得できましたが、パスを取り出す方法はないでしょうか?
(もちろんコンテキストからでなくても構わないです。)

Spring 使ってる上でクラスの作り方が間違っているとか、もっと普通の方法があるようでしたら
ご指摘ください。よろしくお願い致します。

399:デフォルトの名無しさん
05/05/15 22:24:06
>>398
私も同じ現象起きてます。
"/WEB-INF/lib/applicationContext.xml"という指定をすると
WEB-INFが見当たらないというエラーが返ってきます
なんでかしらんけど、パッケージの中しかパスが認識されないんです
だから
"/jp/co/sample/applicationContext.xml"
みたいにすると読み込めるんですよ。
でもソースのパッケージの中に設定入れとくのはちょっと気持ち悪いな、といった感じです
私はEclipseでTomcatプラグイン使用してますけど
Web.xmlの設定とかが必要なのかなー

400:399
05/05/15 22:30:21
レスした後に気づいたけど

>で、コンテキストは取得できましたが、パスを取り出す方法はないでしょうか?
>(もちろんコンテキストからでなくても構わないです。)

これどいう言う意味ですかね?

絶対パスで指定しなければルート(WEB-INFなのか?)から
フォルダをなめていってくれてapplicationContextを探すってことですかね。

不勉強ですいませんorz

401:デフォルトの名無しさん
05/05/16 05:36:09
つか、Webアプリだったらweb.xmlに設定書いた設定使うようにすりゃいいじゃん。

402:398
05/05/17 05:44:34
>>399

/web.xml
/WEB-INF/config/ (クラスパスが通っている)
/WEB-INF/config/applicationContext.xml
/WEB-INF/data/  (クラスパスが通っていない)
/WEB-INF/data/data.xml

結局知りたいのは、HttpServlet を継承していないクラスから、
上の /WEB-INF/data/data.xml を読む方法なんですが、わからない・・・

>>401
web.xml に登録していなくて、httpServlet を継承していないクラスから
web.xml に記載した初期化パラメータ読むにはどうすればいいんですか?
マジで調べてもわからなかったので、すいませんが教えてください。

403:デフォルトの名無しさん
05/05/17 08:11:38
>>402
HttpServletを継承していない普通のクラスが、
/WEB-INF/なんて、HTTP固有のディレクトリ構造に
依存することを良しとする訳ですか。


404:デフォルトの名無しさん
05/05/17 08:46:55
基本的には普通のクラスはDIコンテナの存在を気にしないようにするね。

405:デフォルトの名無しさん
05/05/17 08:47:10
Servletクラスは絶対パスを取得できるので、そのパスをもらえばいいのでは?

406:デフォルトの名無しさん
05/05/17 09:11:58
サーブレットからApplicationContext自体をもらえばいいね。

407:デフォルトの名無しさん
05/05/17 14:22:24
FileSystemXmlApplicationContextではだめかいな?

408:デフォルトの名無しさん
05/05/17 17:29:46
皆さんどうもありがとうございます。

>>403
/WEB-INF/data にアプリが使うデータファイル置くのは一般的に言って変ですか?
/dataでもいいので普通はそうなら変更を考えます。まだ作法に慣れてないもので勉強します。

>>404
そのクラスは相手がDBじゃなくてファイルなんですがDaoと同じ様な役割をさせたいクラスなんで
他のDaoクラスと同じようにDIコンテナからロードさせてるんですよ。
で、Servletとか関係ない層で動いてるんですが実際のパス取得をどうしようかと悩んでます。
Springのフレームワークからそういうのとれないのかなと考えてましたが、的違いでしたでしょうか?

>>405-407
結局Servletクラスからパスをもらうことにしました。
正直に言ってまだ釈然としないものが残っているんですが、一般的にそうなら慣れるしかないですね

409:デフォルトの名無しさん
05/05/17 21:41:41
いにしえのServlet/JavaBeans流:jarファイル近辺のPropertiesファイルか取得
  :
J2EE流:JNDIからデータの位置を取得
      Connectorアーキテクチャでデータを供給
  :
Spring Framework: ?


410:デフォルトの名無しさん
05/05/17 22:37:48
>>408
ふつうは、普通のクラスはDIコンテナの存在を気にしないでいいようにする

411:デフォルトの名無しさん
05/05/17 22:39:07
>>408
設計が悪いときに無理をしないといけないのは一般的な話だから気にするな。

412:デフォルトの名無しさん
05/05/17 23:28:33
>>409
BeanFactoryから取得

413:デフォルトの名無しさん
05/05/17 23:41:41
BeanFactoryはどこからファイル所在を取得するつもり?

414:398
05/05/17 23:59:50
398です。お忙しいとこ何度もすみません。

>>410
ということは、Spring のアプリケーションコンテキストに依存せず、他の(サーブレットを継承していて
サーバ環境にアクセス可能な)クラスからもらってくる方法はまだマシという理解であってますか?

>>411
設計が悪いのなら直したいのです。>>409さんが書いている様に、Springやその他のDIコンテナ
(すみませんがJ2EE/EJBは知りません)を使ったときの作法があるのなら、この機会に
身に着けたいと思ってます。普通のクラスが外部リソースにアクセスする一般的な方法を
教えてもらえませんか?

415:デフォルトの名無しさん
05/05/18 00:17:47
>>413
そりゃサーバサイドだったら、web.xmlじゃないか?

JNDIだってどっかにJNDIのInicialContextFactoryを指定する(プロパティとか)のと同じ事だとおもうけど。

416:デフォルトの名無しさん
05/05/18 00:44:57
つまり、根っこはプロパティ

417:デフォルトの名無しさん
05/05/18 00:45:37
web.xml使うのは、Servlet層だけの簡単アプリ

418:デフォルトの名無しさん
05/05/19 06:47:36
DIしたオブジェクトから先は、いもづる式にDIするようにして、DIコンテナを意識しないとか。

419:デフォルトの名無しさん
05/05/19 10:10:35
>>418
最初は芋づる式って密な感じがして気持ち悪かったけど
実装してみたら楽すぎて止めらんね
どういった点でデメリットが出てくるんだろうか

420:デフォルトの名無しさん
05/06/01 08:56:52
JSF+Springで設計してんですけど
JSFのバッキングビーンのクラスとビジネスロジックのクラスのそれぞれの役割で

バッキングビーン
値のチェック、変換(この辺はバリデータ、コンバータに
任せるべきなんだろう)などのビジネスロジック呼び出す前の処理
あと、ビジネスロジックの結果の後処理

ビジネスロジック
必要なDAOを呼ぶだけ

こんな風に考えてます。これだとビジネスロジックのクラスが
たいした役割ではないと思うんですけど、DAOのファサード風と考えてよいでしょか

JSF+Springのサンプルアプリがみたいどすえ〜

421:デフォルトの名無しさん
05/06/01 10:05:15
>>420

>JSF+Springのサンプルアプリがみたいどすえ〜

URLリンク(appfuse.dev.java.net)
URLリンク(equinox.dev.java.net)

漏れ自身が勉強中なので情報提供のみで失礼。

422:デフォルトの名無しさん
05/06/01 10:47:23
>>420
DBのモデルを単に画面に表示する・画面に入力した値をDBに格納する
みたいなシンプルなアプリだとそうなるかもね。

423:デフォルトの名無しさん
05/06/01 10:50:24
sageついでに

>ビジネスロジック呼び出す前の処理
>あと、ビジネスロジックの結果の後処理

どのレベルの処理を言ってるのかわからないけど、
本当にMVCレイヤに置くべき処理なのか再検討してみては?

424:デフォルトの名無しさん
05/06/01 11:58:03

この本どうよ?書評キボンヌ
『実践Spring Framework―J2EE開発を変えるDIコンテナのすべて』
URLリンク(www.amazon.co.jp)

『入門Spring』と『軽快なJava』は読みました。さらに詳しい話を
聞きたい、という目的に使えますかね?

425:デフォルトの名無しさん
05/06/02 22:11:28
SpringがJSFとXULをイイ感じに仲介するフレームワーク作ってくれたら
一杯おごってやりたい。

426:デフォルトの名無しさん
05/06/03 12:15:51
>>425
Mozilla独自のXULより標準規格のXFormsのほうが良いのでは?
MozillaもOpenOffice.orgもXFormsに対応する上に、
Chibaを使えばXForms未対応のブラウザに対して
HTML+JavaScriptに変換してから送信することで
大部分のブラウザに対応できます。

Chiba (サーバーサイドJavaライブラリ)
URLリンク(chiba.sourceforge.net)
MozillaとXForms (Mozilla1.8/Firefox1.1で対応予定)
URLリンク(www.mozilla-japan.org)
[XForms 00031] XFormsのためのwiki (村田真氏がMozillaでXForms推進)
URLリンク(www2.xml.gr.jp)

427:デフォルトの名無しさん
05/06/03 12:41:43
>>426
XULへの必要性は一般の人にとっては低いとは思うが、
>>425は、ブラウザベースクライアントじゃなくて、リッチクライアントとして
XULを使うことを前提に書いてるんじゃなかろうか。
JSF経由でSwingとかFlashをクライアントにするノリで。

428:デフォルトの名無しさん
05/06/03 12:42:00
sage

429:デフォルトの名無しさん
05/06/22 09:39:06
禿げオヤジは意外とおとなしかったな。

430:デフォルトの名無しさん
05/06/25 15:34:01
海外では50%以上のプロジェクトで使われていて
ほぼデファクトスタンダードらしいが、なぜこのスレは伸びないの?


431:デフォルトの名無しさん
05/06/25 18:21:20
まあ、DIスレも伸び悩んでるし、
カテゴリとしてマイナーなんでは。日本では。

432:デフォルトの名無しさん
05/06/26 08:56:09
>>430
DIは、使い始めれば空気みたいなもんで、とくに議論することもなくなるから。

433:デフォルトの名無しさん
05/06/26 16:54:53
つーかSpringがホントに便利なのって純粋なtype2,type3のInjectionその物より、
コンテナが作ったProxyに対するAOPでしょ?

434:デフォルトの名無しさん
05/06/26 22:33:01
DIってのは、そういうものを便利にするための裏方だからな。

435:デフォルトの名無しさん
05/06/27 10:43:51
このスレ生きてるみたいだから質問させてくれ

proxyでAspectをweavingする事の弱点って何だ?
漏れが把握しているのは

1.自分自身のメソッドを呼び出すとAspectがかからない。
2.visitorみたくthisを渡して処理させるとAspectがかからない。

他に注意点ある?

436:デフォルトの名無しさん
05/06/27 11:31:59
ものすごくはらへった。

437:デフォルトの名無しさん
05/06/27 11:41:45
俺もだ。

438:デフォルトの名無しさん
05/06/27 13:49:43
いまさら同意。

439:デフォルトの名無しさん
05/07/05 11:09:42
1.2.2リリース記念

440:デフォルトの名無しさん
05/07/05 13:38:30
>>439
どこが変わったの?

441:439
05/07/05 15:43:58
詳しく見てない&試してないけど、注目した一文は;

『added dedicated support for Hibernate Annotation 3.0 beta 2』

442:デフォルトの名無しさん
05/07/05 17:36:12
>>441
でも、前からHibernate Annotations使えてたよ。

443:デフォルトの名無しさん
05/07/05 22:32:17
つうか、Doclet のことを言ってるんじゃあるまいな。

444:デフォルトの名無しさん
05/07/06 03:19:27
アノテーションってそんなにいいもんなんでしょうか。
DIでせっかくコードから煩雑な記述を追い出したのに、
またコード中に埋め込んで、回帰と言うか退化と言うか。

コンパイラに対する指示を埋め込むのは意義が大きいと思うけど。

445:デフォルトの名無しさん
05/07/07 10:24:52
>>443
ここの最後にやりかた書いてあるよ。
URLリンク(www.fk.urban.ne.jp)

446:デフォルトの名無しさん
05/07/07 10:25:46
>>444
アノテーションは、XMLより記述が楽だし、ソースから得た型の情報を使うことで記述量自体が少なくできてるから、そう煩雑でもない。
クラスに関する情報をソースファイルに一元化できる効果もある。
なによりコンパイラによる静的チェックが効くし、Javaソースエディタでの補完が効く。

447:デフォルトの名無しさん
05/07/08 22:00:29
DIってテストしやすくなる?
単体まではいいけど、結合で結局アボーンな感じがするのだけど。

まぁつまるところは設計能力か・・・

448:デフォルトの名無しさん
05/07/10 00:55:34
アボーンって、具体的にはどういう問題がでてくると思う?


449:デフォルトの名無しさん
05/07/13 20:03:02
TransactionProxyFactoryBeanにtagetってフィールドがあるんですけど、これシングルトンなんです。
マルチスレッドでここに処理が殺到した場合、スレッドセーフにトランザクションさばけるんでしょうか?
教えてください。

TransactionProxyFactoryBean
URLリンク(www.springframework.org)

450:デフォルトの名無しさん
05/07/13 20:42:56
>449

そりゃ、targetしだいだろ。targetがスレッドセーフなら、問題ない。

451:名無しさん
05/07/13 21:00:03
同時に異なるスレッドの異なるtargetがシングルトンのTransactionProxyFactoryBeanにセットされにきたらどうなりますか?

452:デフォルトの名無しさん
05/07/13 23:18:19
オブジェクトの数とスレッド数は別ものとして考えないと。

ちゃんと考えられてるだろうから、
単一のオブジェクトの同じメソッドを
複数のスレッドが並行して駆け抜けることは全然OKなように
つくられてるはず・・・(たぶん)

453:デフォルトの名無しさん
05/07/14 16:28:52
蒼ざ(ry

454:デフォルトの名無しさん
05/07/14 19:22:10
どうやらtargetもシングルトンじゃないとダメみたいですね。

455:デフォルトの名無しさん
05/07/16 17:28:30
>>462
それはプラットフォームによる。
・GUIは大抵そう。(OSから飛んでくるイベントの処理は、イベント毎の状態保持が必要。
            もっとも、同じ要素に複数イベント飛んできたら、単に順次処理する事が多いんで、
            本当のスレッド並列処理はそんなに必要ないと思う。)
・Webアプリ周りも大抵そう。(例の(Statefull)Servletあたりが有名)
それ以外の場面で、常にインスタンスとスレッドを別に考えるのは、どーかと思う。
結局インスタンス数を減らしてまでメモリー消費を避けたい特殊な場面(大規模アプリ、組込みアプリ)
に固有のやりかただと思う。

456:455
05/07/16 17:30:24
ああ>>451-452の流れか。>>455は取り消し(ワラ

457:デフォルトの名無しさん
05/07/19 10:34:04
というか誰にレスしてんだ

458:デフォルトの名無しさん
05/07/24 22:38:13
これが最近有名なJSFって奴ね。
Javaは最新の技術追うのが大変(@@)

459:デフォルトの名無しさん
05/07/25 01:15:53
==============================
キチガイが狂った独り言を書き込み中
==============================

460:デフォルトの名無しさん
05/07/25 07:37:48
>>441
applicationContext.xmlの中でHibernate Annotationsの設定がかけるようになるってことみたいだね。
LocalSessionFactoryBeanを使う場合は、hibernate.cfg.xmlを書いておく必要があった。

461:デフォルトの名無しさん
05/08/06 22:29:31
Spring1.2.3でProxyFactoryBean使おうと思って

[ sample.xml ]
<beans>
<bean id="test" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyTargetClass"><value>true</value></property>
<property name="target"><ref local="person"/></property>
<property name="interceptorNames"><value>advisor</value></property>
</bean>
…略…
</beans>

[ sample.java ]
BeanFactory factory = new ClassPathXmlApplicationContext("/com/mamezou/aop/proxydi/sample.xml");
Person person = (Person) factory.getBean("test");
person.setName("Hoge");

ってやるとCGLIBがねぇよってエラーになって、
CGLIB2.1のjarクラスパスに突っ込んでやるとエラーになるんだけど…。

対処方法ってなんかある?

462:461
05/08/08 00:45:20
事故解決しますた。orz


463:デフォルトの名無しさん
05/08/08 01:32:41
いちお、解決方法きぼんぬ

464:デフォルトの名無しさん
05/08/08 12:18:04
今度は aopallience がねえよって怒られて
それを修正したとかそんな流れ?

465:461
05/08/08 20:07:27
遅レス、スマソ。

CGLIB2.1入れても
java.lang.NoClassDefFoundError: org/objectweb/asm/Type
って出たので、ASM入れただけです。

_| ̄|○|||

ASMは1.5.3入れました。2.0だと
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
が出ます故。これで動いたは動いたケド、正しいかどうかは…。


466:デフォルトの名無しさん
05/08/08 20:27:13
>>464
だいたいあってたね。

467:デフォルトの名無しさん
05/08/10 12:47:00
だいたいってことは、正確にはどーすればよいわけ?

468:デフォルトの名無しさん
05/08/10 20:51:17
CGLIB とかのライブラリは
Spring 付属の jar をぶっこんだ?
まだ 1.1.7 使ってて 1.2 系は試してないけど
付属の jar 入れとけば間違いは少ないと思う。

469:461
05/08/10 20:53:28
ageます。スマソ。

>>467
asm-1.5.3.jar
cglib-2.1_2.jar
をWEB-INF/lib/に放り込んでクラスパス通すだけでつ。
「ProxyFactoryBean使うときはCGLIB入れろ」
ってドキュメントに書いてあったのですが、
CGLIB使うときはASM入れないないとNGなんで、
URLリンク(prdownloads.sourceforge.net)
URLリンク(forge.objectweb.org)
のミラーからDLしてください。

…というコトではない?


470:デフォルトの名無しさん
05/08/10 21:14:42
with-dependency の方のディストリビューション落とせば
添付の jar を必要に応じて加えるだけで
外部のライブラリは不要だったと思うんだけど。。

471:461
05/08/10 21:47:00
>>470
サンクス。

>with-dependency
こっちじゃなくて、spring-framework-1.2.3.zip落としちゃって…。

URLリンク(www.techscore.com)
にしっかり書いてありました。orz


472:デフォルトの名無しさん
05/08/19 12:55:20
Spring Beans XML Editor (Spring IDE for Eclipse)
URLリンク(springide.org)
Screen Shot 見る感じだと
とりあえず欲しい機能は結構揃っているような。

473:デフォルトの名無しさん
05/08/25 16:33:37
URLリンク(www.springframework.org)

474:デフォルトの名無しさん
05/09/07 09:38:35
KingはRodが大嫌いなんだとさw

URLリンク(houseofhaug.net)

475:デフォルトの名無しさん
05/09/07 09:53:15
Hibernate3 でトランザクション周りが結構変わって、
Spring とかなり方向違うなぁと感じたりはする。

Hiernate の Session Factory から getCurrentSession() 呼んだら
思いっきり怒られたりとか。
JTA が必要だったとは知らなかった。

なんかそんなことが続いてる。。

476:デフォルトの名無しさん
05/09/13 23:10:59
Springを勉強してます。
サーブレットにDIしたいクラスのsetter作って
動かしてみたのですが、NullPointerException...
サーブレットではsetterインジェクション(?)できないんですか?
ContextからgetBeanすれば普通にとれるんですが。。


477:デフォルトの名無しさん
05/09/14 00:14:32
>>476

普通はBeanにsetter/getter作るでしょ。
むしろ、setter/getter作ると自然にBeanになる。
MVCからやり直s(ry


478:デフォルトの名無しさん
05/09/14 00:27:50
>>476
サーブレットでDIするためにどういう設定したの?

479:デフォルトの名無しさん
05/09/14 00:40:33
>476
Webコンテナが管理しているサーブレットインスタンスを
そのサーブレットが呼ばれる前に,アプリ側から取得する方法があるとでも?

480:デフォルトの名無しさん
05/09/14 01:39:52
しかし、いろんなこと考える奴がいるもんだな・・・ある意味感心したw

481:デフォルトの名無しさん
05/09/14 02:41:41
>>479
web.xmlにはプロキシサーブレットを登録して、そのときパラメータで実際のサーブレットクラスを指定するような実装にすればできんでもない。

482:476
05/09/15 01:29:23
>>477-481
勉強不足でごめんなさい。
サーブレットからビジネスロジックを呼び出すのに
自分でビジネスロジックのインスタンスを作らずに、
setterを作って、ビジネスロジックをDIしようとしたのですが。。。
やっぱり無理なんですかね?

483:デフォルトの名無しさん
05/09/15 02:32:53
>>482
便乗してTapestryの宣伝でもしてみるか。

Tapestry-4.0だと、それに相当する事が出来るようになってる。
Tapestry-4.0自体はDIコンテナにHiveMind使ってるけど、
HiveMindとSpringを連携させる方法もあるので、
Springで管理してるオブジェクトをTapestryのページや
コンポーネントにDIすることできて便利。


484:デフォルトの名無しさん
05/09/15 03:15:06
>>483
日本語のドキュメントはどこにありますか?

485:デフォルトの名無しさん
05/09/15 16:21:13
あなたはいぢわるな人だ

486:デフォルトの名無しさん
05/09/19 09:44:33
で、実際に開発で使ってる実績ってあるの?
Spring。

487:デフォルトの名無しさん
05/09/19 09:47:35
何をもって実績と呼ぶかを定義しないと
そりゃどっかで使ってるさ。で終わってしまう。

488:デフォルトの名無しさん
05/09/19 19:12:43
どっかって・・・。
どこでも使ってないんじゃないの、と思ってるんだが。

489:デフォルトの名無しさん
05/09/19 20:59:49
おれんとこの現場は使ってる

490:デフォルトの名無しさん
05/09/19 21:06:20
>>488
そうかもね。

というか、DI自体にメリットというか魅力を感じない。
いや、考え方とかそういったのは素晴らしいと思うよ。

だけど、実際には客先にコストダウンとかのメリットがある訳じゃないし、
実行速度が上がるわけじゃない。
まぁ、テストを簡単に行えて品質は上がるのかもしれない。


だけど、問題は、DI使ったからといって、修正とかが楽になるかと言えば、答えはNO。
大抵の修正はメソッドの呼び出しとか、そういったものまで結構変更になる。

なのに、下手にDI使ってインターフェースとか定義してたら、
結局インターフェースもクラスも関連するもの全部修正しないといけない。

つまり、殆どの場合、DI使うことにより、修正の手間は倍以上になる。
作る時に、無駄ともいえるものを作るんだから、下手したら4倍近い手間。

世間がこれからどうなるか知らないが、すくなくても俺の会社では
DIは明示的には使わないという方向で決まった。
(ライブラリの内部とかで使われてるとかは知ったこっちゃ無い)

491:デフォルトの名無しさん
05/09/19 22:21:44
インターフェイスをきるときには、システム将来計画等から予想して、
ある程度変更になりそうな部分を見極めとかないと意味は無い
DIか否かより、結局は設計の問題になると思うけど

492:デフォルトの名無しさん
05/09/19 23:06:57
>>490
君の言ってることはDIとは直接関係ないかなぁ。
単にインターフェースへのプログラミングってやつの是非を語っているだけではないのか?
まぁ、それも確かに賛否両論よく議論されているネタだけどね

DI使うと部品作って組み立てるプロセスが面白くて、楽しく開発は出来るんだけど、
アホには使いこなせないからあまりポピュラーにはならないかもしれない

493:デフォルトの名無しさん
05/09/20 00:09:30
SimpleFormControllerでvalidatorを行おうとしています。

<bean id="confirmEntryController" class="controller.ConfirmEntryController">
<property name="commandClass"><value>model_entity.User</value></property>
<property name="commandName"><value>user</value></property>
<property name="validator"><ref local="userValidator"/></property>
<property name="formView"><value>userEntryView</value></property>
<property name="successView"><value>confirmView</value></property>
</bean>

エラーを表示するのに、spring:bindを利用しているのですが、
-------------entry.jsp-----------------------------------------
<spring:bind path="user.name">
<FONT color="#FF0000"><c:out value="${status.errorMessage}"/></FONT>
</spring:bind>

entry.jspを表示するときに、次のようなエラーになってしまいます。
javax.servlet.ServletException: Neither Errors instance nor plain target object for bean name 'command' available as request attribute

なにか見落としがあるのでしょうか?
あうあぅ締め切りがあさってです。助けてください・・・

494:デフォルトの名無しさん
05/09/20 00:11:05
あーーすみません
エラーメッセージがまちがっていました。。
javax.servlet.ServletException: Neither Errors instance nor plain target object for bean name 'user' available as request attribute


495:デフォルトの名無しさん
05/09/20 01:41:00
まだ490みたいなこと言う人居たのか。すげえな。世の中って。

496:デフォルトの名無しさん
05/09/20 02:29:53
MVC フレームワーク使ったことないんで
(Viewは絶対にVelocityが良い派。
コントローラはStrutsがベタ打ちっぽくて好き派。)
大きく外してるかも知れませんが

URLリンク(64.233.179.104)
>Bind 時に
>javax.servlet.ServletException: Neither Errors instance nor plain target object for bean name 《コマンド名》 available as request attribute
>という例外が発生する事があります。 これは、Bind するコマンドオブジェクトがリクエストに保存されていないのが原因です。
>コントローラに SimpleFormController を使っている場合、processFormSubmission() メソッドで、
>super.onSumit(request, response, command, errors) を呼び出すと、例外は発生しなくなりました。参考までに。
ConfirmEntryController でそれに類する処理が必要かどうか、存在するのかの確認と、
デバッガで動かしてリクエストの中身を覗いてみてはどうでしょうか?

497:デフォルトの名無しさん
05/09/20 20:30:51
>>495
そうでもないんじゃない?

実際、ある程度予測できる範囲やちょっとした修正なら、DIだろうが何だろうが修正は簡単。
だけど、大抵の場合って、そもそもの仕様から引っくり返されるんだよね。

『ごめん。やっぱりこの機能も追加して』って一言で。

そうなると、確かに>>490の言うような状態に陥る。

498:デフォルトの名無しさん
05/09/21 01:34:49
インターフェース直して、テストコード直して、実装直す。
簡単ジャマイカ

499:デフォルトの名無しさん
05/09/21 01:44:41
>>497
顧客の「やっぱり」が予想できる場合と出来ない場合で違うと思う
予想できない場合は、たとえどんな作り方をしてても無駄なわけだし

500:デフォルトの名無しさん
05/09/21 03:19:34
DIの肝って、「実装を交換できる」ってこと。
あとは想像力さえあれば、大抵の状況は、インターフェイスの修正無しになんとかできるはずだが。
まぁ、インターフェイスの設計がへぼいとどうにもならない場合があるけど。

501:デフォルトの名無しさん
05/09/21 05:36:55
べつに、実装交換しなくても便利なんだけど。
実際のアプリケーションでDIでつなげたクラス同士を切り替えることなんてほとんどない。
それでも、つなげることをやってもらえるだけで便利。

502:デフォルトの名無しさん
05/09/21 23:44:25
>>501
コードでつなげる処理を書くよりも便利なの?

やっぱり自分で試して体感してみるしかないかな。

503:デフォルトの名無しさん
05/09/22 06:51:23
自分でさわらずに批判してもしかたないよ。

504:デフォルトの名無しさん
05/09/22 09:06:33
DI に関する話をココでやって
Springの話をDIスレでやると言う
ねじれ現象が起きてるのは何故ですか?

505:デフォルトの名無しさん
05/09/22 11:53:07
ながいものはねじれるというのが物理法則の基本だから。

506:デフォルトの名無しさん
05/09/23 09:54:47
そもそもDIスレなんてのかあったのかって話。

507:デフォルトの名無しさん
05/09/23 17:54:03
>>506
Dependncy Injectionを語るスレ
スレリンク(tech板)

508:デフォルトの名無しさん
05/09/23 23:10:30
多少綴りが間違ってるのと、DI という略語を併記しなかった失策っぽい。

509:デフォルトの名無しさん
05/09/24 03:31:24
>>507
一月半もレスないのか。
S2スレはFAQの件で盛り上がっているというのに……。

510:デフォルトの名無しさん
05/09/24 03:33:09
本題ではあまりもりあがらない件

511:デフォルトの名無しさん
05/10/05 11:18:48
>>449の件って、>>454が正解なんですか?
だれか解説お願いします。

512:デフォルトの名無しさん
05/10/19 09:37:25
こんな記事があったんですが、Springが主流になりますかね?
URLリンク(www-128.ibm.com)

513:デフォルトの名無しさん
05/10/19 10:43:13
>>512
読めん!

514:512じゃないけど
05/10/19 16:48:17
>>513
これなら読めるか?
URLリンク(www-06.ibm.com)

515:デフォルトの名無しさん
05/10/19 17:50:56
>>514
読める!

516:デフォルトの名無しさん
05/10/23 21:45:48
おまいら、SpringのTransaction管理って使ってますか?


517:デフォルトの名無しさん
05/10/23 22:15:15
使ってない。
むしろ自分でトランザクションコード書いた方が安心する。
別に大した労力じゃないし。
分散トランザクションやろうとしたら別だけど。

518:デフォルトの名無しさん
05/10/23 22:20:08
そしてデッドロック

519:デフォルトの名無しさん
05/10/23 22:26:25
デッドロックに対して気をつけなきゃいけないことは、トランザクション管理も
ハードコーディングも一緒なり

520:デフォルトの名無しさん
05/10/24 00:00:28
>>517
try/finally/try/catchをいちいち書くの面倒じゃない?

521:デフォルトの名無しさん
05/10/24 00:22:16
>>520
書くと安心するw
いたるところで書くわけでもないし苦痛でもない。

522:デフォルトの名無しさん
05/10/24 14:16:34
ひとりとかふたりで開発するならそれでもいいんだけどねぇ。
人数多くなってわけわかんないコーダーが含まれるようになると、それじゃ怖い。

523:デフォルトの名無しさん
05/10/24 15:15:19
投げて上で処理するとか。
一箇所で処理できる仕組みであれば何でもいいけどな漏れは。

524:デフォルトの名無しさん
05/10/24 17:24:13
投げて上で処理ってどういうこと?
上でconnection.rollback();
を実装するという意味だよな?

525:デフォルトの名無しさん
05/10/24 21:00:01
>>523
その為にAspectとか有るんじゃないか?

526:デフォルトの名無しさん
05/10/24 21:21:21
そこでEntity Beanですよ。

527:デフォルトの名無しさん
05/10/24 23:28:43
コミット、ロールバックもろもろ書いてあるメイン処理テンプレートソース
用意してコレ使えという。

528:デフォルトの名無しさん
05/10/24 23:32:53
要するにAOPは使いたくないってこと?

529:デフォルトの名無しさん
05/10/25 00:27:49
トランザクションだけはコードで書きたい。

530:デフォルトの名無しさん
05/10/25 09:47:45
テンプレートを使うやり方ってtransactionScriptみたいなヤツ?
あれって複数Daoに更新命令メッセージ渡したい時にうまくasid守れるのだっけ?
ドアホな質問だったらスマソ

>>529
自作インタセプタでAOPするのも嫌なの?

531:デフォルトの名無しさん
05/10/25 10:35:43
ACID

532:530
05/10/25 11:30:31
し、しまった、ゴメン恥sage

533:デフォルトの名無しさん
05/10/25 21:41:41
Seasarを選ばなかったおまいらは非国民

534:デフォルトの名無しさん
05/10/25 21:55:08
日本で作ったところくらいしか、とりたてて特徴がないからなぁ。
逆にSeasar選ぶのは国粋主義だとは言える。

535:デフォルトの名無しさん
05/10/25 23:30:51
>>530
>>インタセプタ
それならいいかも。コードかけるから。

536:デフォルトの名無しさん
05/10/26 01:28:04
>>534
国粋主義が悪いかのように匂わす藻舞は共産主義者

537:デフォルトの名無しさん
05/10/26 01:34:42
>>536
ウヨ厨発見。
「国粋主義」ってそもそも悪口だし。悪いに決まってる。

538:デフォルトの名無しさん
05/10/26 10:14:29
Javaが日本発な言語でない以上、
Seasar2もSpringもその意味では五十歩百歩だろ。
使いやすい方使えばいいのよ。

539:デフォルトの名無しさん
05/10/26 13:35:27
>>534
どっちがいいのかは個人の判断だと思うけど、
かなり違うよSpringとSeasarは。

特徴がないと思っているのは単なる勉強不足。

540:デフォルトの名無しさん
05/10/26 16:42:29
>539
で、両者の顕著な違いってどの辺り?
軽量DIコンテナ+AOPサポートって言う
コアな考え方が同一な以上、
枝葉は多少異なるだろうけど、
幹の部分は大差なく感じるんですが。

それぞれのサブプロジェクト(MVCフレームワークとか)は
モデルが大きく異なるだろうけど、限りなく枝葉な問題だし(私には)。
そこの違いがでかいんだよと言われると、大変困るが。

541:デフォルトの名無しさん
05/10/26 16:59:35
ロジックとかDAOを呼び出すだけで使ってる分にはあまり差を感じないけどな。

542:デフォルトの名無しさん
05/10/26 17:18:39
>>540
DIだとあまり変わらないかもね。

ただ、Seasarの新しいバージョンだと、DIが結構変わったみたい。
XMLはほとんど書かないらしい。

AOPは結構違う。
JavaWorldに出てたけど、同じAOP AllianceのAPIにもとづいているとは
思えないくらいに設定の仕方が違う。

543:デフォルトの名無しさん
05/10/26 20:24:41
設定方法なんか、どうだってなるわけだが。

544:デフォルトの名無しさん
05/10/27 00:49:30
DIやAOPよりも、自前でJTA実装用意してるかどうかが大きい気がする
Tomcatやローカルアプリに対して、安定したJTA環境+AOPによる宣言トランザクションを提供出来るというのが
自分から見たS2の売りかな?
Springも外部のJTA実装を用意すれば一緒なんだけど、出来ればSpring内で実装まで用意して欲しい

545:デフォルトの名無しさん
05/10/27 09:37:46
ん〜、煽りじゃなくて教えて欲しいのだが、自前JTAってそんなにいいの?

どうせAP鯖上で動くならそのAP鯖のJTA使えばいいと思う。
つっか、AP鯖のJTA使うと、提供されている管理画面を
使えちゃったりして便利なんだよね。使用状況とか一目瞭然だし。

546:デフォルトの名無しさん
05/10/27 11:05:18
>>545
> どうせAP鯖上で動くならそのAP鯖のJTA使えばいいと思う。

AP鯖ならそれ使えばよろし。
「Tomcatやローカルアプリ」の場合の話。

547:デフォルトの名無しさん
05/10/27 11:50:06
JOTMとか?

というか部品を用意してあるかどうかなんて些細な差と言うか、
そもそも比較項目にすらならん気がする。

224 にも張られた内容見るといろいろ差があるなとは思う。
結局AOPに対するアプローチが一番の違いか?
Spring はどこまでも POJO マンセーな感じ。
良い意味でも悪い意味でも。

548:デフォルトの名無しさん
05/10/27 12:38:18
>>547
JTA実装するかしないかの差は、両者のトランザクション管理に対する考えの違いでもある。
JTAを標準としてJDBCトランザクションを排除していこうとしてるのがS2
JDBCもJTAも、DIコンテナがラップして利用者に統一的に使って貰おうとしてるのがSpring

549:デフォルトの名無しさん
05/10/27 12:39:51
>>547
POJOマンセーはSeasarのほう。
Springには、何かしたかったら、こういうインターフェースを実装しろ
というのがいろいろあるけど、Seasarはそういうのがほとんど無い。

550:デフォルトの名無しさん
05/10/28 01:25:53
jsfを使うんだけどspringはどの段階で作り始めればいいんですか?
ある程度jspとかbeanとか決まってから?

551:デフォルトの名無しさん
05/10/28 09:21:16
>>550
君の脳内が整理されたら。

552:デフォルトの名無しさん
05/10/28 10:56:12
Spring 自体は作らんだろ。作らんよね?
Spring 自体は作りませんね。

553:デフォルトの名無しさん
05/10/28 14:25:10
そんなレスはいらんねん

554:デフォルトの名無しさん
05/10/28 18:52:00
なんかすごいヤシが来たな、ワクワク

555:デフォルトの名無しさん
05/10/30 17:47:22
(・∀・)ハイーキョ

556:デフォルトの名無しさん
05/10/30 21:02:51
>>555
気が早いよ。ヽ(`Д´)ノ
もう少しまってろ。

557:デフォルトの名無しさん
05/10/31 01:27:45
保全

558:デフォルトの名無しさん
05/10/31 14:31:11
ところで、Springを使ってサービスを2つ起動しているけど
片方のサービスを止めたり、動かしたりする場合のサンプリングが解らず・・・・

筆不精で表現が不十分ならすまん・・・。

559:デフォルトの名無しさん
05/10/31 14:49:38
>>558
サービスとSpringは直接関係ないだろ。

560:デフォルトの名無しさん
05/10/31 14:50:21
つうか、サンプリングって新しいな、おい。

561:デフォルトの名無しさん
05/11/01 13:36:58
統計やってるんだろう

562:デフォルトの名無しさん
05/11/01 14:30:30
springとhibernateを使ってるのですが、以下のようなコードでDBからデータを取得した時に
ログ情報はどうやって出すのでしょうか?
出したい情報としては、どのテーブルに、どんな条件で取得or更新処理等を行っているかです。
SQLの場合は、SQLそのものをログに出せば良かったのですが、spring+hibernateになった場合
SQLの時と同等の内容をログに出力する方法が分からなくなってしまいました…。

Hoge hoge = (Hoge)getHibernateTemplate().get(Hoge.class, primaryKey);

このgetの中でやっている事をログに出したいです。

563:デフォルトの名無しさん
05/11/01 19:08:20
Hibernate の設定でログにSQLを吐くってのがあったはず。

564:デフォルトの名無しさん
05/11/02 00:43:48
springの設定でhibernatePropertiesに
<prop key="hibernate.show_sql">true</prop>
を設定

565:デフォルトの名無しさん
05/11/02 10:31:05
>>563,564

ありがとうございます!
おかげさまで、SQLは出力されるようになったのですが、
出力されるSQLのWHERE句の条件部分が、実際の値に置換する前の「?」に
なってしまいます….
この「?」の部分が実際の値に置換された状態のSQLを出力する事は出来ないのでしょうか?

566:デフォルトの名無しさん
05/11/05 20:04:59
さっぱり関係ないんだけど、PreparedStatementに値が入れられた後のSQLを
吐き出させられないかと思うことはよくあるな。

567:デフォルトの名無しさん
05/11/05 20:42:17
DB側でログだすしかないね。
JDBC4でやってくれないのかなぁ

568:デフォルトの名無しさん
05/11/06 00:19:10
そもそもJDBC内で完全なSQL生成してるわけじゃないから無理だよな。
そんなことしてたらPrepareStatement意味ない。。

569:デフォルトの名無しさん
05/11/06 01:52:33
なんかのクラスのログレベルを下げれば、
どんなパラメータを入れたか確認できるけど一応。
どのクラスかは会社に居ないので確認できましぇん

570:デフォルトの名無しさん
05/11/06 15:24:20
Spring + Hibernate3 でテストしてた時は
パラメータも表示されてたと記憶してるが。

571:デフォルトの名無しさん
05/11/07 09:55:19
ドライバにトレースオプションとか無いの?

572:デフォルトの名無しさん
05/11/08 01:15:17
>>566
p6spyってのを使えばできるらしいよ。

573:sage
05/11/13 01:07:52
SpringWebMVC使ってるんだけど、
フォーム上の二つの入力フィールドの値を、
コマンドオブジェクトの一つのプロパティにBindすることってできないんだろうか?

574:デフォルトの名無しさん
05/11/13 01:12:45
JavaScriptFrameworkかとおもた

575:デフォルトの名無しさん
05/11/13 13:14:15
よし、今からSpringを勉強するよ。
指示をくれ
とりあえずダウンロードしてくるわ

576:デフォルトの名無しさん
05/11/13 13:35:02
spring-framework-1.2.5-with-dependencies.zipをダウンロードして
Eclipseに展開
その間に
URLリンク(www.atmarkit.co.jp)
これを読んでる

577:デフォルトの名無しさん
05/11/13 13:39:20
なにこれ?
あほですか?
ただ、指定のクラスを生成して、ついでにプロパティも入れるというだけ?
くだらん。
ただのFactoryじゃん。
messageを生成時に注入してHello World!かよ。
おめでてーな。
まあ、記事が馬鹿だということを予想して付属のSampleためしてくるよ。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4911日前に更新/243 KB
担当:undef