25 top spring mvc interview questions
最も人気のあるSpringMVC面接の質問と、エントリーレベルおよび経験豊富な候補者への回答:
Springは、Java EnterpriseWebアプリケーションを開発するためにJava開発者によって世界中で使用されている強力なフレームワークです。
Spring MVCは、Model View andControllerの略です。他のフレームワークStrutsと同様に、SpringもJSPとサーブレットであるJ2EEテクノロジーに基づいており、デザインパターンのモデル、ビュー、コントローラーが実装されています。
ここでは、SpringMVCの面接で最もよく寄せられる質問を例を挙げて説明します。
学習内容:
アンドロイドのための最高のモバイルスパイソフトウェア
SpringMVCアーキテクチャ
MVCアーキテクチャには、開発者が強力で疎結合のアプリケーションを開発するために常に利用できる多くの組み込みクラスとコンポーネントがあります。
疎結合とは、クラス間にハードコードされた依存関係があってはならないことを意味します。これにより、アプリケーションのコードや機能の変更に関しては、タスクが非常に複雑になります。
MVCアーキテクチャには、独自の独立した機能があります。モデル層にはすべてのPOJOクラスが含まれており、データのカプセル化に役立ちます。ビューレイヤーは、モデルレイヤーに存在するデータをレンダリングするために使用され、通常はWebブラウザーでデータを受信するクライアント用にHTML形式で出力を生成し続けます。
最後に、コントローラーは要求の処理と正しいモデルの構築を担当し、それによってビューまたはプレゼンテーション層に応答を送信します。
この記事では、以下に説明するように、SpringMVCのすべての重要なトピックについて説明します。
- SpringMVCの動作原理
- 春の建築
- ディスパッチャサーブレットの概念
- ハンドラーマッピング
- コントローラ
- 解決を表示
- SpringMVCのさまざまなレイヤー
- Springコア、SpringMVCを使用する利点
- Springモジュール
- AOP
- 表現言語
- データアクセス層
- Webモジュール
- 側面
- テストなど
- pom.xmlファイルに関する制御の反転と依存性注入。
SpringMVCの長所と短所を見てみましょう!!
SpringMVCの長所
以下に、SpringMVCのさまざまな長所を示します。
- 非常に小さいため、問題の少ない高性能を実現します。
- 生産性が高く、開発が進んでいます。
- Spring SPIを使用しているため、安全性が高く、ほとんどすべての銀行でWebアプリケーションに使用されています。
- モデルビューとコントローラーアーキテクチャをサポートしているため、モジュラーアプリケーションを開発できます。
- それは完全なテスト駆動開発をサポートしますが、これはあまりにも優れています。
- これまで、開発者による世界中のアジャイル開発Webアプリケーションに最適です。
- タスクを簡素化する責任と役割の分離機能があります。
- RESTfulサービスのサポートを提供します。
- テーマ、国際化、その他のデータベースフレームワーク、JPA、複数のビュー、およびコミュニティサポートをサポートします。
SpringMVCの短所
以下に、SpringMVCの短所の一部を示します。
- SpringフレームワークとそのMVCアーキテクチャの学習曲線は、複雑な概念がほとんどないため、開発者にとっては少し複雑です。
- Springは、XMLベースやアノテーションベースのように性質が変化しており、フォローアップが困難になる場合があります。
- SpringMVCの仕様は非常に少ないです。
- jarファイルが利用できない場合、アプリケーションは正しく実行されません。
- 非常に大きな構成の問題、処理する多くのコントローラー、制御する多くのビューリゾルバーなど。
SpringMVCの面接に関する質問
以下に、SpringMVCの最も重要な面接の質問を示します。インタビュアーに説明するのに非常に役立つように、各質問の概念を理解するようにしてください。常にリアルタイムアプリケーションの例を示したり、関連付けたりするようにしてください。これらは経験豊富な専門家にも役立ちます。
Q#1)Spring Frameworkとは何ですか?なぜそれほど人気があるのですか?
回答: Spring Frameworkは、疎結合のJavaWebアプリケーションを開発するために使用される軽量のフレームワークです。
組み込みのコンテナー、依存性注入、およびMVCアーキテクチャーを提供します。デカップリング、再利用性を可能にし、シングルトン、コード長を短縮するファクトリなどのデザインパターンを提供し、弱い接続を取り除き、サードパーティと強力に統合できるため、非常に人気があります。
Q#2)Spring MVCとは何ですか?
回答: Spring MVCは、モデル、ビュー、およびコントローラーの概念に従います。
これは、単独で共有されるコントローラーのインスタンスであり、インターセプターやコントローラーなどの制御の反転コンテナーで実行されるいくつかの要求の処理にも役立ちます。 Spring MVCパターンは、入力、ビジネス、およびプレゼンテーションロジックを含むアプリケーションの側面を分離するのに役立ちます。
Q#3)Spring Frameworkのコア機能は何ですか?
回答:
SpringMVCのコア機能は次のとおりです。
- フレームワークとクラスをBeanとして効果的に構成することができます。また、機能的な役割と責任を別々に分割します。
- これにより、無制限のコントローラーメソッドを定義できるため、アプリケーションを高度に調整可能で柔軟にできます。
- ハンドラーのマッピング、バインディング、ビューの解決、および検証に適したカスタマイズを提供します。
- マップを使用してモデルを転送するのに役立ちます。また、velocity、JSTL、JSPのサポートも提供し、ユーザーはロケールとテーマの解像度をカスタマイズできます。
- Springには独自のタグライブラリがあり、より柔軟になり、データバインディング、テーマ、HTTPリクエストまでのライフサイクルを持つBeanをサポートします。
Q#4)ディスパッチャサーブレットの概念を説明してください。
回答: Dispatcher Servletは、すべての着信HTTP要求と応答を処理する主要な中央サーブレットです。 Spring IOCと統合されているため、Springのすべての機能を使用できます。
ディスパッチャサーブレットはリクエストを受信すると、適切なコントローラを取得するためにハンドラマッピングに転送します。これで、コントローラは正しいサービスメソッドを呼び出し、ディスパッチャサーブレットに送り返します。
この場合も、サーブレットは必要なビューを取得するためにビューリゾルバーに要求を送信し、次にクライアントブラウザに応答を送信します。
ディスパッチャサーブレットの使用法を示すコード例:
Software Testing Help Web Application SoftwareTestingHelp org.Springframework.web.servlet.DispatcherServlet 1 SoftwareTestingHelp /
Q#5)Spring MVCでのContextLoaderListnerの使用は何ですか?
回答: これは、Spring構成ファイルを読み取って解析し、その構成ファイルでのBeanのロードを処理するために使用されます。
コード例:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/applicationContext.xml 1
Q#6)SpringMVCのフロントコントローラークラスについて説明してください。
回答: フロントコントローラーは、アプリケーションの着信要求全体を処理する責任があります。 Spring MVCでは、ディスパッチャーサーブレットがフロントコントローラーとして機能し、着信要求全体を処理します。
Q#7)@AutowiredAnnotationの機能を説明してください。
回答: @Autowiredアノテーションは、フィールドとメソッドとともにタイプごとにBeanを注入する役割を果たします。これにより、SpringフレームワークがコラボレーションBeanを解決してBeanに注入するのに役立ちます。
例:
package com.SoftwareTestingHelp; import org.Springframework.beans.factory.annotation.Autowired; public class WordEditor { private SpellChecker sp; @Autowired public void setSp( SpellChecker sp ){ this.sp = sp; } public SpellChecker getSp( ) { return sp; } public void spellCheck() { sp.checkSpelling(); } }
Q#8)モデル属性アノテーションの機能は何ですか?
回答: @ModelAttributeアノテーションは、SpringMVCフレームワークで重要な役割を果たします。それぞれのモデル属性とのバインディングメソッドパラメータを担当し、それをプレゼンテーションページに表示します。
また、開発者がモデル属性アノテーションで何を使用しているかによっても異なります。 。 メソッドレベルで使用される場合は、メソッドが属性を追加する責任があることを示します。パラメータとして使用する場合は、パラメータ値をモデルレイヤーから取得する必要があることを示します。
Q#9)パス変数の概念と機能を説明してください。
回答: @PathVariableは、URIテンプレートの値を抽出するためのハンドラーメソッドのパラメーターとして使用されるアノテーションです。
例:
@RequestMapping('/Login/{Lid}') public String handleRequest(@PathVariable('Lid') String Login, Model map) { }
Q#10)アノテーション@RequestBodyの機能は何ですか?
回答: @RequestBodyアノテーションは、HTTPボディリクエストをドメインオブジェクトにバインドする役割を果たします。着信HTTP要求は、HTTPメッセージコンバーターの助けを借りて、SpringによってJavaオブジェクトに自動的に逆シリアル化されます。
Q#11)アノテーション@ResponseBodyの機能は何ですか?
回答: @ResponseBodyアノテーションがMVCコントローラーで使用されている場合、開発者が宣言されたメソッドの戻り値の型をHTTP応答本文に直接書き込む必要があることを示します。ここでは、モデルを呼び出す必要はなく、ビュー名はSpringによって解釈されません。
Q#12)SpringMVCにViewResolverが必要なのはなぜですか?Springの内部ビューリゾルバーとは何ですか?
回答: View Resolverは、Webブラウザーでのモデルのレンダリングを担当します。 JSP、XML、Velocityなどの特定のビューテクノロジーは必要ありません。
「InternalResourceViewResolver」は、SpringMVCの内部ビューリゾルバーです。
以下に説明するように、SpringMVCにはいくつかの重要なビューリゾルバーがあります。
AbstractCachingViewResolver、XmlViewResolver、ResourceBundleViewResolver、UrlBasedViewResolver、InternalResourceViewResolver、FreeMarkerViewResolver、ContentNegotiatingViewResolverなど。
Q#13)SpringMVCフレームワークの動作原理を説明してください。
回答:
次の図は、フローを理解するのに役立ちます。
ご存知のように、これはModel、View、およびControllerの概念に基づいています。 Dispatcherサーブレットは、web.xmlで実行されたサーブレットマッピングに応じてHTTPリクエストを受信します。
Dispatcherサーブレットがリクエストを受信すると、同じリクエストをハンドラマッピングに送信して、必要なコントローラクラスを取得します。ハンドラーのマッピングは、Spring構成ファイルに記載されています。
この場合も、要求はコントローラーに送信され、コントローラーは要求とメソッドを処理して、必要なモデルビューオブジェクトをディスパッチャーサーブレットに送り返します。
これで、リクエストがサーブレットによってビューリゾルバーに送信され、ビューページの表示が取得されます。
最後に、Dispatcherサーブレットはモデルをプレゼンテーションページに渡し、同じものがクライアントブラウザにレンダリングされます。
Q#14)BindingResultsを使用する目的は何ですか?
回答: BindingResultsは、パッケージに含まれるSpringのインターフェースの1つです。 org。 Springframework 。検証 バインディング結果を表すために使用されます。
送信されたフォームからエラーを検出するのに便利な役割を果たします。シンプルで簡単な呼び出しプロセスがあります。開発者は、オブジェクトの検証直後に、バインディング結果をパラメーターとして配置することに留意する必要があります。
構文:
@PostMapping('/client') public String submitpage(@Valid NewUserPage newUserPage, BindingResult result, Model model) { if (result.hasErrors()) { return 'uHome'; } model.addAttribute('message', 'Valid Page'); return 'uHome'; }
ここで、Springフレームワークは@Validアノテーションを読み取ることで理解し、そのバリデーターを見つけようとします。
Q#15)SpringFrameworkのモデル1とモデル2のアーキテクチャについて説明してください。
回答: これらは、Webアプリケーションを開発するための2つの重要な設計モデルです。
モデル1:
ここで、着信要求はサーブレットまたはJSPによって処理されます。サーブレットまたはJSPページは、要求の処理、処理、ビジネスロジックの制御、データの検証、そして最後に応答の生成を担当します。
シンプルでアーキテクチャも簡単で、小規模な業界ではシンプルなアプリケーションを開発するのに最も好まれています。
モデル2:
これは重要な設計モデルであり、Model ViewControllerの概念に基づいています。コードを操作するプレゼンテーションとロジックセクションを分離することができます。
このモデルは堅牢で信頼性が高く、重複を回避します。大規模で複雑なアプリケーションの構築に適しています。
Q#16)SpringMVCインターセプターの機能とその使用法を説明してください。
回答: インターセプターは、SpringMVCで便利な役割を果たします。これらは、クライアントからのリクエストをインターセプトし、リクエストを処理する前、リクエストを処理した後、プレゼンテーション部分(ページを表示)の完了後など、さまざまな時間にリクエストを処理するために使用されます。
また、横断的関心事からも使用され、後でモデルのグローバルパラメータを変更したり、ログを記録したりするなど、コードハンドラの繰り返しを減らします。
Q#17)Spring MVCで複数のSpring構成ファイルを使用することは許可されていますか?
回答: はい、Springでは1つのアプリケーションに複数の構成ファイルを含めることができます。
これを実現するには主に2つの方法があり、それらの方法を以下に示します。
(i)開発者は、パラメーターを使用してweb.xml内のすべてのファイルを宣言する必要があります。
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/Spring-dao-hibernate.xml, 1 Spring /
(ii)開発者は、既存の構成にファイルをインポートできます。
Q#18)次のアノテーションの機能を説明してください:@ Component、@ Controller、@ Repository、@ Service。
回答: これらは、SpringMVCの重要な注釈です。それらを見てみましょう。
@成分: このアノテーションは、JavaクラスをBeanに変換して、Springによって認識され、アプリケーションコンテキストで使用できるようにする役割を果たします。
構文:
@Component public class StudentDAOImpl implements StudentDAO { ... }
@リポジトリ: このアノテーションは@Componentと同じように使用されますが、Springで使用できるチェックされていない例外も考慮されます。
@サービス: このアノテーションもJavaクラスをBeanに変換しますが、リアルタイムアプリケーションでより優れた仕様を提供するため、@ componentよりも@serviceアノテーションを使用することをお勧めします。
@コントローラ: コントローラーとしてクラスを作成する場合は、このアノテーションを指定する必要があります。
Q#19)マルチパートリゾルバーの役割は何ですか?いつ使用されますか?
回答: Multipart Resolverは、Webアプリケーションにファイルをアップロードする役割を果たします。そのための2つの実装は、commonsMultipartResolverとStandardServletMultipartResolverです。
Q#20)Spring MVCはどのように検証のサポートを提供しますか?
回答: Springは、主にJSR303アノテーションとValidatorインターフェースを使用するという2つの方法で検証サポートを提供します。
Q#21)Spring MVC Webアプリケーションでローカリゼーションはどのように実現されますか?
回答: Spring MVCは、国際化とローカリゼーションの両方をサポートするためにLocaleResolverで構成されています。これを可能にするには、以下のようにいくつかのBeanを登録する必要があります。
SessionLocaleResolver – ロケールを解決するには、ユーザーセッションですでに定義されている属性を利用します。
構文:
LocaleChangeInterceptor- 着信要求にパラメーターが存在する場合に役立ちます。
構文:
Q#22)SpringMVCのルートアプリケーションコンテキストの概念とその読み込みプロセスについて説明してください。
回答: ContextLoaderListnerは、Spring MVCではルートアプリケーションコンテキストとして知られており、完全なアプリケーションによって使用されます。
これは、SpringMVCのブートストラップを支援するリスナーです。これは、明示的なコードの記述を回避するために、applicationContextのロードと作成に使用されます。 Spring Beanは、アプリケーションコンテキストで定義されます。
通常、dispatcherServletは、SpringMVCでサーブレットを指定するために使用されます。
Q#23)Spring MVCでのweb.xmlの役割は何ですか?どこにありますか?
回答: web.xmlで、ContextLoaderListnerを構成します。アプリケーションをデプロイすると、ContextLoaderListnerのサーブレットコンテナによってインスタンスが作成され、webApplicationContextが読み込まれます。
SQLインジェクションを手動でテストする方法
Q#24)コントローラーメソッドの戻り値の型について説明してください。
回答: コントローラメソッドの重要な戻り値の型には、String、void、view、ModelAndView、Model、Map、HttpHeadersなどがあります。
Q#25)レンダリングフェーズでビューが選択される基準は何ですか?
回答: MVCアーキテクチャのViewResolverは、必要なビューを選択する責任があります。
コントローラがディスパッチャサーブレットに応答を送信すると、表示のためにクライアントWebブラウザに送信できる正しいビューページを取得するための要求がビューリゾルバに送信されます。
Q#26)@Requestparamアノテーションと@PathVariableアノテーションの主な違いは何ですか?
回答: これらのアノテーションは、URLから情報とデータをフェッチするために使用されます。
ただし、これらの主な違いは、@ Requestparamはクエリパラメータのフェッチにのみ使用され、@ PathVariableは完全なURLのフェッチに使用されることです。
Q#27)アスペクト指向プログラミングの概念を説明してください。
回答: AOPはSpringMVCアーキテクチャの重要な部分です。 AOPは、横断的関心事だけでなく、アプリケーション、データの検証、モジュールロギング、トランザクション管理、認証、およびオブジェクトにも使用されます。
アスペクト指向プログラミングには多くの部分があります。 これらは以下に記載されています:
- 側面: アスペクトは、トランザクション管理などの横断的関心事に責任があります。
- 助言: これは基本的に実行されるアクションとメソッドであり、指定されたジョインポイントにも使用されます。
- ポイントカット: 正規表現に関するアドバイスの実行を担当します。
- ジョイントポイント: これは、例外処理、メソッドの実行、変数値の変更などのプロセスのアプリケーションのポイントです。
- アドバイスの議論 :これらの引数は、メソッドの受け渡しに使用されます。
結論
この記事から、SpringMVCアーキテクチャの完全な概要を理解できたと思います。
ここでは、Spring MVCフローの完全なエンドツーエンドフローについて説明しました。なぜSpringMVCが必要なのですか? MVCアーキテクチャのさまざまなモジュールは何ですか? Spring MVCとディスパッチャーサーブレットの機能、フロントコントローラーの概念、リスナーとその機能、@ Autowired、@ Controller、@ RequestBodyなどのさまざまなタイプのアノテーション。
また、View Resolverの概念、AOPプロセス、さまざまなタイプのコントローラー、およびその使用法についても学びました。ローカリゼーションとインターセプター、Springフレームワークのさまざまなアーキテクチャー、およびバインディング結果の概念とその使用法。
Springコンテナとは何かとSpringMVCでの使用法を知るようになりました。 Spring MVCでの構成ファイルの使用、パス変数の責任と重要性。などほとんどすべての重要で最も期待されるSpringMVCインタビューの質問がこの記事で説明されています。
ただし、インタビュアーの期待に応えるために、リアルタイムアプリケーションのコード例を使用して説明することを常にお勧めします。ここでは、理解しやすいように、すべての概念に必要なすべてのコードについて説明します。
幸運を祈ります!