2

私は大学で Java EE を教えていますが、これは学生からの質問でした。「いいえ」と言いましたが、よくわからなかったので、強力な開発者に尋ねてみようと思いました。:)

基本的に、私がやりたいことは、エンティティが私のコンテキストにある場合はエンティティを使用することです: cat ゲッター、セッターなど、通常の POJO のように。リモート インターフェイスを使用して EJB を使用すると、エンティティがコア インフラストラクチャから分離されるため、それはできません。

修士論文でこのようなレイヤーを書くことを考えました。それが死んだ考えである場合は、遠慮なく教えてください。そうでない場合は、欲しいかどうか教えてください。

または、そのようなツールがあれば教えてください。

4

9 に答える 9

3

基本的な現代の Java EE アプリケーションでは、さまざまなレイヤーに分割され、4 つの基本レイヤーがあります。

+--------------------+
|   Presentation     |
+--------------------+
| Controller/Actions |
+--------------------+
| Business Delegate  |
|     (Service)      |
+--------------------+
|  Data Access Layer |
+--------------------+
|      Database      |
+--------------------+

アプリケーションは、最初からこれらのレイヤーに分割する必要があります。これにより、兄弟レイヤーに影響を与えることなく、任意の時点で任意のレイヤーを置き換えることができます。

たとえば、データ アクセス レイヤーに JDBC を使用した場合、ビジネス デリゲートやデータベース レイヤーに影響を与えることなく、Hibernate に置き換えることができます。このようなアーキテクチャを使用する利点は、複数のテクノロジとのコラボレーションが可能になることです。ビジネス デリゲート (サービス レイヤー) は、Web サービスと対話し、ブラウザにアクセスしなくてもアプリケーション処理を処理できる必要があります。

JSP をプレゼンテーション レイヤーとして使用することに関しては、前述の iberck のように、 velocityfreemarkerなどの他のテクノロジを利用できます。タペストリーには独自のレンダリング エンジンもあります。XML + XSLT を使用して UI をレンダリングすることもできます。Tilessitemeshなどの UI 管理アプリもあり、さまざまな技術をページのさまざまなコンポーネントとして統合し、1 つとして表示するのに役立ちます。

また、 JNLPを組み合わせた軽量のスイング コンポーネントを使用して、デスクトップ スタイルのエンタープライズ アプリケーションを開発することもできます。私たちが必要とするのは、少しの想像力とクライアントの要件だけで、文字通り何でもプレゼンテーション レイヤーとして使用できます。

于 2008-11-19T21:14:12.120 に答える
0

試したことはありませんが、JSFはJSPよりもFaceletsの方がうまく機能するはずです。

IBMにはそれに関する記事があります。

于 2008-11-17T19:48:33.340 に答える
0

途中のコメントを見て、Java EE を介したデスクトップ フレームワークが必要であることがわかりました。

ここでの答えは、JSF がサーブレット API を介して機能するということです。これは間違いなく Web 用ですが、アプリケーションに tomcat や jetty を埋め込むこともできます!

可能性はほぼ無限です。ビジネス レイヤーが適切に定義されている場合は、ビジネス関数を呼び出すスイング レイヤーを構築するだけです。

また、Java EE は API であり、一部を置き換えることも、一部だけを使用することもできます。コンテナーは主に、EJB、サーブレット JNDI、およびその他の小さなものを処理するためのものです。これらはすべて、デスクトップ アプリでも使用できます。

したがって、答えは、特定の目標とアプリケーションの実際の設計/実装によって異なります。

于 2008-11-19T21:13:34.790 に答える
0

ああ。あなたは私の質問を正しく理解していないようです:)

Bean は、アプリケーション内でサービスを提供するために存在します。たとえば、Swing GUI を備えたスタンドアロンの Java アプリケーションを開発し、そのアプリケーションから、Java ee アプリケーションのスコープに存在するエンティティを使用したいとします。

それが私がシームレスにやりたいことです: EntityManager の切り離しの問題を気にせずに、直感的な方法でエンティティを作成、変更、削除します (EJB をリモートで呼び出してエンティティ オブジェクトを返すと、エンティティ オブジェクトは切り離されます)。返却前)。

Web アプリケーションを開発したくありません。JSF/JSP などは強力に統合されていますが、多くの環境ではスタンドアロンのクライアント アプリケーションの方が適しています。:)

于 2008-11-19T10:21:22.250 に答える
-1

Beanの背後にあるイデオロギーは、今日、私が知っている適切なJavaフレームワークにあります。豊富に述べたように、Springは優れた/優れたオールラウンドなビジネスロジックフレームワークであり(jdbcテンプレートクラスを確認してください。これらは単純に優れています。もう1つの優れたgemはapplicationContext.xmlです)、ビューレイヤーには個人的にApacheWicketを好みます

自分で作成する必要はないと思いますが、代わりに、ニーズに合ったフレームワークを見つけて、そのコードベースに貢献し始めてください。そうすれば、すでに形成されているユーザーベースから始めて、コードをより徹底的に作成できます。あなたをより良いプログラマーにするでしょう。

于 2008-11-17T19:47:21.157 に答える
-1

別の代替手段はTapestry5フレームワークです。Tapestry は、動的で堅牢でスケーラビリティの高い Web アプリケーションを Java で作成するためのオープンソース フレームワークです。Tapestry は、標準の Java サーブレット API を補完および構築するため、任意のサーブレット コンテナーまたはアプリケーション サーバーで動作します。

Tapestry は Web アプリケーションを一連のページに分割し、それぞれがコンポーネントから構築されます。これにより一貫した構造が提供され、Tapestry フレームワークが URL の構築とディスパッチ、クライアントまたはサーバーでの永続的な状態ストレージ、ユーザー入力の検証、ローカリゼーション/国際化、および例外レポートなどの重要な問題の責任を負うことができます。Tapestry アプリケーションの開発には、プレーンな HTML を使用して HTML テンプレートを作成し、そのテンプレートを少量の Java コードと組み合わせる必要があります。Tapestry では、オブジェクト、およびそれらのオブジェクトのメソッドとプロパティの観点からアプリケーションを作成しますが、特に URL やクエリ パラメータの観点からではありません。Tapestry は、真のオブジェクト指向開発を Java Web アプリケーションにもたらします。

于 2008-11-17T19:35:08.950 に答える
-1

grails ( http://www.grails.org/ ) または griffon ( http://griffon.codehaus.org/ ) が興味深いかもしれません

于 2008-11-19T10:41:54.563 に答える
-1

StringTemplateは、ANTLR の背後にいる Terrence Parr によって作成されました。モデルからある種のテキスト表示を生成することに興味がある場合、これは非常に優れています。

それを使用して、同じモデルからXML、Web ページ、およびドット ファイルを生成するために優れた結果が得られました。オブジェクトをレンダリングするためのテンプレートを作成します。そのテンプレートは、モデルから派生したデータに基づいて、他のテンプレートを (再帰的にも含めて) 呼び出すことができます。(qv画像機能)

getter および gettermap.get()は、テンプレート内から直接呼び出すことができます。モデルは任意の POJO にすることができます。ST はコントローラから厳密に分離されていることを誇りにしているため、テンプレート自体で許可されるロジックはほとんどありません。

これらすべての小さな言語と同様に、それは学ぶべき新しいことであり、あなたが探しているものではないかもしれません. 私には本当にぴったりでした。

于 2008-11-19T11:52:58.540 に答える
-1

1 つの代替手段はSpring Frameworkです。Spring は、エンティティ オブジェクトをビューにバインドするための独自のサポートを提供し、配線が完了すると取得/設定を処理します。選択できる多くの Spring モジュールがあります。Spring MVC と Spring Webflow はどちらもチェックする価値があります。Spring MVC (IMO) は使い始めるのが簡単ですが、Sring Webflow ではより複雑なナビゲーションとより多くのスコープ オプション (例: フロー スコープ) が可能です。本を探しているならSpring In Actionは降下です。Spring を使用するには、いくつかの概念 (依存性注入など) に取り組む必要がありますが、時間をかける価値は十分にあります。

于 2008-11-17T18:35:14.580 に答える