Java Spring Frameworkを語るスレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG乱立するフレームワークと競合するプロトコルの嵐のなかで、
リスクの高い決断を余儀なくされているJavaデベロッパ、プ
ロジェクトマネージャに対する福音です。
語るべし。
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に期待揚げ
0842デフォルトの名無しさん
2006/08/31(木) 15:09:250843デフォルトの名無しさん
2006/08/31(木) 15:12:010844デフォルトの名無しさん
2006/08/31(木) 17:58:42>>838
説明thx、acegi に AuthXxxLdapImpl みたいなのがあるので
混乱していたのですが、確かに違うレイヤの話ですね。
(基本的に「業務アプリ屋」なもので、LDAPの本質とか
頭脳から抜け落ちていました)
>>839
情報アリガト、今度その辺を試そうと思っているので購入
してみることにします。
>>840
お、これイイ。今度の仕事、このパターンになりそうなんです。
(EclipseRCPじゃなくてSwingになりそうだけど)
丁度都合よく記事が出てラッキー!!
0845デフォルトの名無しさん
2006/09/06(水) 23:21:30Swingを選ぶあたり、保守性を考慮してあっていいね
SE5.0から速度が向上してるよ
0846デフォルトの名無しさん
2006/09/07(木) 01:34:240847デフォルトの名無しさん
2006/09/07(木) 15:27:08最も単純な、あるクラスの全メソッド呼び出しをインターセプトする場合、
Enhancer使って、MethodInterceptorをCallbackさせます。
この時CGLIBは一体どうやって実現してるか分かる方いますか?
CGLIBは、対象のクラスは弄らず、サブクラス化してるらしいが、
そのサブクラスにはどういう仕掛けをしてメソッドインターセプトする
でしょうか。
0848デフォルトの名無しさん
2006/09/10(日) 21:58:060849デフォルトの名無しさん
2006/09/11(月) 01:01:18bean定義でSimpleUrlHandlerMappingのinterceptorsにていぎするのまではいいのですが。
トランザクションのコミットとロールバック条件などはどのように設定するものなんでしょうか。
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教祖ネタというか、燃料が供給されるかの違いだと思うけど。
■ このスレッドは過去ログ倉庫に格納されています