知っておくべき15のSpringMVCインタビューの質問
公開: 2018-03-25Springは、Webアプリケーションの開発に最もよく使用されるJavaフレームワークの1つになりました。 すべての新しいJavaアプリケーションは、デフォルトでSpringコアおよびSpringMVCフレームワークを使用しています。 その人気の高まりのおかげで、世界中のリクルーターは、Springフレームワークを実際に体験できる候補者を探しています。 Java開発者の役割の面接に参加する場合、Spring MVCは、Springフレームワークの面接の質問について知識を磨く必要がある最初のことの1つです。これは、初心者か経験者かは関係ありません。
結局のところ、Spring MVCフレームワークは最も一般的に使用されるJavaフレームワークであり、Java(または関連するインタビュー)のインタビューで、同じフレームワーク内およびその周辺で質問を受ける必要があります。 ご存じない方もいらっしゃると思いますが、Spring MVCは、Webアプリケーションの構築に役立つ堅牢なJavaベースのフレームワークです。 名前が示すように、MVCアーキテクチャ(モデル、ビュー、コントローラー)を使用します。 Spring MVCは、MVCフレームワークでSpringを使用するエレガントな方法を提供します。 2002年にリリースされたSpringフレームワークはオープンソースのフレームワークです。つまり、世界中の開発者がフレームワークの開発とさらなるリリースに貢献できるということです。
Swiggy、Quora、IMDBなどのアプリケーションの構築方法を学ぶそれはまた、あなたの質問を手伝ってくれる開発者の活発なコミュニティがそこにあることを意味します。 オープンソースであることは、Springフレームワークが提供する多くの利点にも追加されます。 特に、Javaでのキャリアを開始する場合は、ガイダンスが必要になります。Java開発者の多様なコミュニティにより、SpringMVCでの作業に関してガイダンスが不足することはありません。
提供するメリットが非常に多いので、SpringMVCがインタビューであなたに質問するのが好きなトピックである理由について疑問の余地はありません。
この記事では、このようなSpring MVCで知っておくべき15の質問について説明します。これらの質問は、どのインタビューでも遭遇する可能性があります。
1. Springフレームワークとは何ですか?
Springは、アプリケーション開発を簡素化するために構築されたオープンソースフレームワークです。 階層構造になっているため、開発者は使用するコンポーネントを選択できます。 Spring Core、Spring AOP、SpringMVCの3つの主要コンポーネントがあります。

さらに、もしあれば、Springでの経験について話すことができます。 それはあなたの答えに多くの重みを加えるでしょう。
企業がフルスタック開発者の採用を検討している理由2. Springフレームワークの主な機能は何ですか?
Spring Frameworkは、開発者の生活を楽にするための多くの機能を提供します。 それらのいくつかは次のとおりです。
- 軽量: Springは非常に軽量で、基本バージョンは約1MBで、処理のオーバーヘッドはごくわずかです。
- 制御の反転(IoC):依存性注入または制御の反転はSpringの最も重要な機能の1つです。 IoCを使用すると、開発者はオブジェクトとその依存関係のための完全な環境を作成する必要はありません。 与えられた時点で処理しているオブジェクトを簡単に作成してテストできます。 オブジェクトの依存関係は、必要に応じて含まれるか、呼び出されます。
- アスペクト指向プログラミング: Springはアスペクト指向プログラミングをサポートしています。 AOPは、二次機能をプログラマーのビジネスロジックから分離します。 これにより、モジュール性が提供されるだけでなく、コードが保守可能になります。
- MVCアーキテクチャ: Springには、Webアプリケーション用のMVCフレームワークが付属しています。 このフレームワークは、JSP、Tiles、iText、POIなどのさまざまなテクノロジーを使用して高度に構成可能です。
- JDBC例外処理: Springには、例外処理プロセス全体を簡素化する定義済みのJDBC抽象化レイヤーが付属しています。
3.依存性注入についてもう少し説明します。
制御の反転または依存性注入は、単純な概念に従うことによってオブジェクト作成のプロセスを簡素化することを目的としています。オブジェクトを作成するのではなく、オブジェクトの作成方法を説明するだけです。 IoCを使用すると、システム内の各オブジェクトの調整を担当する外部エンティティによって、ビルド時にオブジェクトに依存関係が与えられます。 基本的に、IOCまたは依存性注入を使用してオブジェクトに依存性を注入しています。
4.春のさまざまな種類の依存性注入について説明してください。 いつどちらを使用しますか?
Springは、開発者に次の2種類の依存性注入を提供します。
- コンストラクターベースのDI:コンストラクターベースのDIは、いくつかの引数(それぞれが他のクラスへの依存関係を表す)をクラスのコンストラクターに渡すことによって実現されます。 簡単に言うと、依存関係はコンストラクターパラメーターの形式で与えられます。
- セッターベースのDI:引数なしのコンストラクターを使用している場合、セッター関数を介して引数を渡して値を設定し、検討中のBeanをインスタンス化します。これは、セッターベースの依存性注入と呼ばれます。
これらのどれをいつ使用するかは、要件に要約されます。 ただし、オプションの依存関係にはセッターベースのDIを使用し、必須の依存関係にはコンストラクターベースのDIを使用することをお勧めします。
Fyndの共同創設者であるFarooqAdamへのインタビュー
5. Spring MVCフレームワークとは何ですか?
Spring MVCは、Springフレームワークのコアコンポーネントの1つです。 開発者が柔軟で堅牢なWebアプリケーションを構築するのに役立つすぐに使用できるコンポーネントと要素が付属しています。 名前が示すように、MVCアーキテクチャは、アプリケーションのさまざまな側面(入力ロジック、ビジネスロジック、UIロジック)を分離します。 また、アプリケーションのM、V、およびC間の緩い結合も提供します。
6.他のMVCフレームワークに対するSpringMVCフレームワークの利点は何ですか?
Spring MVCフレームワークには、他のフレームワークに比べて明らかな利点がいくつかあります。 いくつかの利点は次のとおりです。
- 役割の明確な分離–すべての役割に特化したオブジェクトがあり、役割の明確な分離を提供します。
- 再利用可能なビジネスコード– Spring MVCを使用すると、コードを複製する必要はありません。 特定のフレームワーク基本クラスを拡張するために、既存のオブジェクトをミラーリングする代わりにコマンドとして使用できます。
- カスタマイズ可能なバインディングと検証
- カスタマイズ可能なロケールとテーマの解決
- カスタマイズ可能なハンドラーマッピングとビュー解像度
- Spring 2.0以降、フレームワークには、JSPページでのフォームの記述をはるかに簡単にするJSPフォームタグライブラリが付属しています。
7. DispatcherServletとは何ですか?
Spring MVCフレームワークはリクエスト駆動型であり、すべてのHTTPリクエストとレスポンスを処理する中央サーブレットを中心に設計されています。 ただし、 DispatcherServletはそれだけではありません。 IoCコンテナとシームレスに統合され、Springの各機能を使用できるようになります。
HTTPリクエストを受信すると、DispatcherServletはHandlerMapping(これらは構成ファイルです)を参照して、適切なコントローラーを呼び出します。 次に、コントローラーは適切なサービスメソッドを呼び出してモデルデータを設定します。 また、ビュー名をDispatcherServletに返します。 DispatcherServletは、ViewResolverを使用して、要求に対して定義されたビューを取得します。 ビューが完成すると、DispatcherServletはモデルデータをビューに渡します。ビューでは、最終的にブラウザにレンダリングされます。
テスト駆動開発とは:初心者向けガイド
8. Spring MVCのフロントコントローラークラスとは何ですか?
フロントコントローラーは、Webアプリケーションに対するすべての要求を処理するコントローラーです。 Spring MVCに関して言えば、DispatcherServletがそのフロントコントローラーです。 WebリクエストがSpringMVCアプリケーションに送信されると、DIspatcherServletがすべてを処理します。 まず、リクエストを受け取ります。 次に、リクエストハンドラー、コントローラー、ビューリゾルバーなど、リクエストを処理するために必要なさまざまなコンポーネントを整理します。 そして最後に、ブラウザにコンテンツをレンダリングします。

9. Viewresolverパターンとは何ですか?MVCではどのように機能しますか?
View ResolverはJ2EEパターンであり、アプリケーションがブラウザー(View)でデータをレンダリングするためのテクノロジーを動的に選択できるようにします。 HTML、JSP、タペストリー、XSLT、JSF、またはその他のそのようなテクノロジーなどのテクノロジーをViewに使用できます。 ビューリゾルバーパターンは、さまざまなビューのマッピングを保持します。 コントローラはビューの名前を返し、適切なテクノロジを選択するためにビューリゾルバに渡されます。
10. Spring MVCはどのように検証サポートを提供しますか?
Springは主に2種類の検証をサポートしています。
- JSR-303アノテーションとリファレンス実装(Hibernate Validatorなど)を使用する、または
- org.springframework.validation.Validatorインターフェースの実装。
11.ユーザーは、チェックボックスをオンにすると他のフィールドで検証エラーが発生し、その後、チェックを外します。 Spring MVCのコマンドオブジェクトの現在の選択ステータスはどうなりますか? この問題をどのように修正しますか?
これは、SpringMVCでのHTTPPostの動作に気付いていない場合に答えるのが難しい質問の1つです。
HTTP Post中にチェックボックスをオフにすると、HTTPにはチェックボックスのリクエストパラメータが含まれません。つまり、更新された選択は取得されません。 これを修正するには、「_」で始まる非表示のフォームフィールドを使用できます。
あなたの最初のソフトウェア開発の仕事で成功する方法
12. MVCフレームワークを3層アーキテクチャとどのように比較しますか?
3層アーキテクチャはアーキテクチャスタイルですが、MVCはデザインパターンです。
そうは言っても、大規模なアプリケーションでは、MVCは3層アーキテクチャのプレゼンテーション層を形成します。 モデル、ビュー、およびコントローラーはプレゼンテーションのみに関係します。これらは中間層を使用してモデルにデータを入力します。
13.パフォーマンスを最適化するためにSpringでJDBCをどのように使用する必要がありますか?
Springは、 JDBCTemplateと呼ばれるテンプレートクラスを提供します。 このテンプレートでJDBCを使用すると、マニホールドのパフォーマンスが向上します。
14. Springフレームワークのコンテキストでの「Bean」とはどういう意味ですか?
IoCコンテナーによって初期化されるクラスはすべて、SpringではBeanとして知られています。 Spring Beanのライフサイクルは、SpringIoCContainerによって管理されます。
15. Spring Beansに関する「スコープ」とは何ですか?
Spring Beansには、次の5つのスコープが付属しています。
- プロトタイプ:Beanのリクエストがあるたびに、毎回個別のプロトタイプが作成されます。
- リクエスト:前のスコープと似ていますが、Webベースのアプリケーションのみです。 Springは、HTTPリクエストごとに、新しいBeanインスタンスを作成します。
- シングルトン:コンテナごとに作成されるBeanは1つだけであり、そのBeanのデフォルトスコープとして機能します。 これらすべてのインスタンスで、Beanは共有インスタンス変数を使用できません。これは、データの不整合につながる可能性があるためです。
- セッション:HTTPセッションごとにBeanが作成されます
- グローバルセッション:グローバルセッションは、ポートレットアプリケーション用に作成されます。
Springフレームワークは拡張可能です。つまり、独自のスコープを作成することもできます。 Bean要素の「scope」属性は、スコープを定義するために使用されます。
フルスタック開発者になる方法
まとめ…
これは、Springフレームワーク、正確にはSpringMVCを中心に展開するSpringの面接の必見の質問と回答に関するものでした。 Springを使い始めようとしているJava開発者なら、これ以上の時間はありません。 Javaインタビューの質問を探している場合は、詳細をお読みください。
貴重な時間を費やして、Java Springの面接の質問を手に入れてください。そうすれば、準備は万端です。 組織は、このフレームワークが提供する機能のおかげで、このフレームワークを強力に指揮している開発者を探しています。

世界のトップ大学のソフトウェアエンジニアリングコースに登録します。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
