1

既存の jsp/servlet/portlet(jetspeed) ベースのアプリケーションを春に移行中です。私と私の同僚は、アプリケーションの設計、コーディング、デプロイ、および保守を行う唯一の開発者です (私が職務をリストした理由は、見せびらかすためではなく、私の責任と私の行動の影響を説明するためです)。手遅れになる前に、最初のアプリケーション設計とアーキテクチャに注意を払いたいと思っていました。既存の Web アプリケーションは、すでに世界中で使用されています。新しいアプリケーションを設計しているときに、いくつかの質問に遭遇しました。

1) アプリケーションを絞り込む webapps の数: 現在、5 つの webapps があります。必要に応じて、これらすべてを 1 つの Web アプリにまとめることができます。これにより、Spring への移行時にそれらの間でデータを共有するための追加のコーディングを回避できます。ただし、スケーラビリティとメンテナンスについては妥協したくありません。たとえば、単一のクラス変更のために war ファイル全体をデプロイしたくない場合。私の質問: 1 つまたは複数の Web アプリケーションを設計および選択する際に考慮する必要がある要素は何ですか?

2) Web アプリ間のデータ共有: 複数の Web アプリがある場合、データを共有する必要があります。抽象度の低い解決策を考えています。私は春に比較的新しく、現在、2 つのコンテキスト間でフィルターと要求オブジェクトによって webapps 間でデータを共有しています。( Spring Bean を異なる Spring コンテキスト間でどのように共有しますか? )のような投稿をいくつか見つけることができましたが、 Springに気付くまで、あまり抽象化してしまいたくありません。しかし、プロジェクトの後期段階で変更を実装するのは比較的難しいことに改めて気づきました。私の質問: 抽象度の低い異なるスプリング コンテキスト間でデータを共有する他の方法はありますか?

3) 使用するスプリングのバージョン。その機能のために確かに最新のものですが、より多くのコミュニティサポートを備えたものを選択したかった. 近い将来、最新のリリースで春のすべての高度な機能を使用する必要があるとは思いません。

4) 表示: 既存の JSP を変換して JSTL をプレゼンテーション レイヤーとして使用することを計画しています。私の質問: JSF のような JSTL 以外の他のテクノロジと、JSTL に対するあなたの提案。

御時間ありがとうございます。

4

2 に答える 2

0

あなたの質問に答えるには 2.異なるアプリ間で共有するSpring Beanがある場合。そのための別のモジュールを定義することを検討します。たとえば、いくつかのビジネス ルールを検証するために Commons Bean を使用する webapp1、webapp2 があるとします。jar ファイルとしてパッケージ化され、webapp1 と webapp2 の両方の依存関係として含まれる validation-manager というモジュールを作成できます。

webapp1 と webapp2 の両方が jar に含まれる共通 Bean にアクセスできるようにするには、アプリケーション コンテキストで次のようにこれらの Bean を構成できます。

検証マネージャー アプリケーション コンテキスト構成

<!-- beans definitions shared between webapp1 and webapp2 -->
<bean id="userValidation" class="com.example.UserValidation" />
<bean id="orderValidation" class="com.example.OrderValidation" />

webapp1 構成

<!-- import beans definitions for validation-manager -->
<import resource="classpath:applicationContext-validation-manager.xml" />

<!-- beans definitions specific to webapp1 -->

webapp2 構成

<!-- import beans definitions for validation-manager -->
<import resource="classpath:applicationContext-validation-manager.xml" />

<!-- beans definitions specific to webapp2 -->

アイデアは、コードを可能な限りモジュール化して、異なる Web アプリケーションで共通の機能を再利用できるようにすることです。

それが役立つことを願っています。

于 2013-08-14T20:25:44.600 に答える
0

これはあなたの質問に答える試みです。

  1. バージョン管理とリリース管理サイクルが適切に行われている限り、個別の webapps を使用すると、変更の影響を維持し、「サイロ化」することが容易になります。私の提案は、「ビッグバン」アプローチを採用するのではなく、一度に 1 つのアプリを「Spring 準拠」スタイルに移行することで、移行の移行を可能にすることです。

  2. データ共有に関しては、いくつかのことと、個々の Web アプリを「サービス」として扱うかどうか (他の Web アプリだけでなく、将来のアプリケーションと情報を共有できる) について考える必要があります。 ) または別の既知の/結合された Web アプリとして。前者を選択する場合は、RESTful サービスやメッセージング サービスなど、さまざまなオプションがあります。後者を検討している場合は、もう少し結合されたデータ共有アプローチを検討しています。Spring Integrationいずれにせよ、アプリケーション間でメッセージ/データを交換する手段として、消費アプリケーションとメッセージング コンジットから離れて抽象化されていることに慣れたいと思うかもしれません。理論のために。

  3. 最新のものを使用してください。3.1 から 3.2 への移行には多少のバンプがありますが、3.2 には、開発に本当に役立つ非常に優れた Spring Web/MVC テスト ツールが含まれています。(これを見てください

  4. JSTL と JSF には異なる対話パターンがあるため、現在のアプリで JSP と JSTL を使用している場合、Spring MVC はそれを非常にうまくサポートし、多くのリソースを利用できます。(JSFに反対するものは何もありません。なぜ追加の複雑さを導入するのか)

于 2013-08-14T16:18:08.043 に答える