バックエンドとストラットでJava、フロントエンドでJspとJSTLタグライブラリを使用している大規模なアプリケーションがあります。データベースはDB2であり、ストアドプロシージャに大きく依存しています。
アプリケーションを新しいアーキテクチャ/フレームワークにアップグレードすることを計画しています。
私たちが検討している主なフレームワークはSpringですが、私たちのリードは、より良いフレームワークであると主張する代わりに、Java EEを採用するように私たちをプッシュしようとしています。
SpringまたはJava EE?)のどちらを使用するかについての推奨事項はありますか?どちらか一方を優先する主な理由(長所/短所)はありますか?
それらのそれぞれについて、JSP taglibの最良の代替手段は何ですか? JSTLで動的データを表示するには、以前はすべてのhtmlタグを手動で書き込む必要がありました。 AngularやJSFコンポーネントなどの新しいフレームワークについて読んでいます。最近広く使用されているものもわかりません。RESTフロントエンドへのJSONとしてのサービス。データをレンダリングするために何を使用しますか?それはJSF、Angularですか?
私は.NETプログラミングを行っていますが、ASP.NETには、データバインディングとListViewなどのコンポーネントがあります。JSFとAngularは同じですか?
あなたがお勧めする良い例、ドキュメント(特にアーキテクチャ)を備えたウェブサイトはありますか?
Java EEとSpringはどちらも、バックエンドを作成するための非常に優れた非常に包括的なフレームワークです。それらの両方があなたが望むことを正確に行うことができるはずです。チームが精通している方を使用することをお勧めしますが、どちらでも非常に簡単に高品質のアプリケーションを作成できるため、詳細には触れません。
フロントエンドに関しては、RESTful APIを作成し、それを使用してフロントエンドJavascriptフレームワークにデータを送信することで、個人的に最良の結果を得ることができました。 Angularはこれに非常に適しています。この理由の1つは、Javascriptフレームワークが優れたWebフロントエンドの作成に関して多くの能力を提供する傾向があることです。JSFはサーバー側です。コンポーネントベースのMVCフレームワーク。これにより、通常、作成されるHTML + JavaScriptを制御しにくくなり、テストを作成するのがはるかに困難になります。
また、大きなお店では、人々がすぐに物事を行うことを常に信頼できるとは限らないこともわかりました。関心の分離は重要であり、フロントエンドコードをバックエンドから遠ざけるのに大いに役立つため、フロントエンドにAngular)のようなJavaScriptフレームワークを使用するのが好きです。JSF開発者がセッションなどを悪用したため、職場にあるアプリケーションはかなりひどいです。JSFコードもバックエンドと同じ展開で使用されていました。Webサービスを使用してサービス指向のアプローチを採用し、すべてを緩く結合したままにする代わりに、 「すべてを行う」コードの巨大な「ブロブ」があります。
多くは彼らが快適なチームに依存します。SpringとJava EEの両方があなたのためにすべてを行うことができますが、個人的にはバックエンド用のSpring jdbc + Springmvcモジュールをお勧めします。Springインジェクション機能は非常に優れていますWebアプリケーションに役立ちます。また、Spring jdbcモジュールは環境を作成し、jdbc呼び出し用のsessionFactoryを作成します。
コントローラーにrest-apiを作成して、作業を非常に簡単にします。 Springには、Java EE標準テクノロジを簡単に使用できるようにするための基本クラスとして機能するテンプレートも多数用意されています。たとえば、JdbcTemplateはJDBCでうまく機能し、JpaTemplateは優れた機能を果たします。 JPAを使用すると、JmsTemplateによってJMSが非常に簡単になります。
また、メンテナンスの観点からも、Springは人気があり、ほとんどの開発者はSpringに精通しているため、Springが最適です。
フロントエンドの場合angularは、AngularJSに依存性注入サブシステムが組み込まれているため、アプリケーションの開発、理解、テストを容易にすることで開発者を支援します。
データバインディングは、おそらくAngularJSで最もクールで最も便利な機能です。これにより、かなりの量の定型コードを書く必要がなくなります。