トップ35春のインタビューの質問と回答:究極のガイド2022

公開: 2021-01-08

Spring Frameworkに関連する今後のインタビューを受けましたか? Spring Frameworkのインタビューの上位の質問を探しているため、おそらくこのページにたどり着きました。 私たちのブログでは、春のインタビューで最もよく聞かれる質問と回答について説明します。

これらを通過すると、面接で素晴らしいパフォーマンスを発揮する可能性があります。 キックスタートする前に、現在の市場におけるSpringFrameworkの全体的な需要について簡単に説明しましょう。

読む:フルスタック開発者がインドで要求する

Springは、Javaプログラミング言語をより速く、よりシンプルに、そしてすべての人にとって安全なものにします。 その主な焦点はスピードですが、それでもシンプルで生産的です。 このため、これは世界で最も人気のあるJavaフレームワークの1つになりました。 ライブラリは柔軟で信頼性があります。 オンラインショッピング、コネクテッドカー、より革新的なテクノロジーなど、多くの場所で使用されています。

また、Amazon、Google、Alibabaなどの大手企業への貢献についても自慢しています。 さらに、春のコミュニティは巨大です。 それはすべての年齢層を含み、非常に多様です。 あなたはあなたの旅を容易にする次のレベルに進むためにオンラインで素晴らしいリソースとサポートを見つけるでしょう。

あなたがJavaプログラマーなら、SpringFrameworkはあなたにとって非常に重要です。 多くの企業は、プログラマーにSpring Frameworkを理解するか、少なくともそのモジュールのいくつかを知っていることを要求しています。

面接官に期待できる、春の面接に関する上位の質問と回答をいくつか示します。

目次

2020年春の面接の質問と回答

Q.1 Spring Frameworkのさまざまなバージョンと、それらの主な機能は何ですか?

3つのバージョンは、Spring 2.5、Spring 3.0、およびSpring4.0です。

Spring 2.5は、注釈をサポートする最初のバージョンでした。 2007年にリリースされました。Spring3.0はJava5のアップグレードを利用し、さらにJEE6にヘルプを提供しました。 2年後の2009年にリリースされました。Spring4.0は、Java8を包括的にサポートする主要なバリアントでした。2013年にリリースされました。

Q.2SpringFrameworkを説明または定義する

これはオープンソースのJavaプラットフォームです。 これは、ヘビーエンタープライズJavaテクノロジーのオプションとして使用されます。 簡単に言えば、軽量であるためJava開発が簡素化されます。 開発者は、Spring Frameworkを使用してアプリケーションを開発し、CPUメモリとリソースが制限されているコンピューターにもデプロイできます。 さらに、Tapestry、JSF、EJB、Hibernate、Strutsなどを含むがこれらに限定されない他のさまざまなフレームワークへのサポートを提供します。

読む:フルスタックプロジェクトのアイデアとトピック

Q.3 Spring Frameworkの利点は何ですか?

  • Spring Frameworkはオープンソースであり、ベンダーロックインはありません。
  • 階層化されたアーキテクチャを使用しているため、本当に必要なものだけを使用できます。
  • Spring FrameworkはPOJOを使用するため、アプリケーションのテストがはるかに簡単になります。
  • SpringFrameworkを使用するJavaの他のすべてのフレームワークで使用できます。 制限や制限はありません。
  • SpringFrameworkはモジュラーフレームワークです。 それは非常に柔軟です。

Q.4 Spring Frameworkのさまざまな機能は何ですか?

  • 軽量:Spring Frameworkは、その透明性とサイズについて言えば軽量です。
  • 制御の反転:プログラムの制御フローを反転させる原理です。 ここでは、サービス、フレームワーク、その他のコンポーネントなどの外部ソースが、プログラマーではなくプログラムのフローを制御します。
  • アスペクト指向プログラミング:Springのアスペクト指向プログラミングは、システムサービスをアプリケーションビジネスロジックから分割することにより、バインディング開発をサポートします。
  • コンテナー:コンテナーはSpring Frameworkのコアです。これは、オブジェクトを作成し、バインドし、構成し、作成から終了までの完全なライフサイクルを担当するコンテナーです。
  • MVCフレームワーク:SpringFrameworkのMVCWebアプリケーションフレームワークは使いやすく、構成可能です。 Spring MVCフレームワークを選択する代わりに、他のフレームワークを使用できます。
  • トランザクション管理:Spring Frameworkは、トランザクション管理に汎用の抽象化レイヤーを使用します。 コンテナの少ない環境でSpringのトランザクションサポートを使用できます。
  • JDBC例外処理:データベース関連の例外を明示的に処理する必要はありません。 Spring JDBC Frameworkは、JDBC例外処理を使用して処理します。

読む:フルスタック開発者インタビューの質問

Q.5 Spring Frameworkにはいくつのモジュールがありますか? それらに名前を付けます。

コアコンテナ、Web、データアクセス/統合、AOP(アスペクト指向プログラミング)、インストルメンテーション、およびテストに分類される20のモジュールを見つけることができます。

Spring Core Container:名前が示すように、SpringFrameworkのコアコンテナーです。 それはで構成されています

  • スプリングコア
  • 春の豆
  • Spring式言語
  • 春のコンテキスト

Web:このレイヤーは、Webアプリケーションの作成をサポートします。 次のモジュールで構成されています。

  • ウェブ
  • Web – MVC
  • Web –ソケット
  • Web –ポートレット

データアクセス/統合:このレイヤーは、データベースとの通信をサポートします。 次のモジュールで構成されています。

  • Javaデータベース接続– JDBC
  • オブジェクトリレーショナルマッピング– ORM
  • オブジェクトXMLマッパー– OXM
  • Javaメッセージングサービス– JMS
  • 取引

アスペクト指向プログラミング:このレイヤーでは、開発者はポイントカットやアドバイスなどを使用してコードを分離できます。

インストルメンテーション:このレイヤーは、クラスローダーの実装とクラスインストルメンテーションをサポートします。

テスト:このレイヤーは、TestNGとJunitを使用したテストをサポートします。

次のような他のその他のノードも見つけることができます。

メッセージング:このモジュールは、STOMPの支援を提供します。 また、WebSocketクライアントからのSTOMPメッセージのルーティングと処理に必要な注釈プログラミングモデルとしても役立ちます。

アスペクト:このモジュールは、AspectJと統合するためのサポートを提供します。

Q.6 Spring構成ファイルとは何ですか?

基本的にはXMLファイルです。 このファイルには、クラスに関するすべての情報が含まれています。 さらに、これらのクラスがどのように構成され、相互に認識されているかについても説明します。 XML構成ファイルは詳細であるため、クリーンに保つ必要があります。 そうしないと、プロジェクトが大きい場合、それらの管理が困難になります。

Q.7Springアプリケーションのさまざまなコンポーネントについて説明してください。

通常、Springアプリケーションは次のコンポーネントで構成されます。

  • インターフェイス:すべての機能はインターフェイスで定義されています。
  • Beanクラス:set関数とget関数とともにここでプロパティを見つけることができます。
  • Springアスペクト指向プログラミング(AOP):横断的関心事の機能を提供します。
  • Bean構成ファイル:このファイルには、クラスの詳細とその構成方法が含まれています。
  • ユーザープログラム:ユーザープログラムはこの機能を使用します。

Q.8SpringFrameworkのさまざまな使用方法を説明してください

Spring Frameworkは、次のようないくつかの方法で使用できます。

  • Spring Frameworkは、包括的なSpringWebアプリケーションとして使用できます。
  • Spring Frameworkは、Spring Frameworks中間層を使用して、サードパーティのWebフレームワークとして使用できます。
  • SpringFrameworkはリモートで使用できます。
  • Spring Frameworkは、既存のPOJOをラップできるEnterpriseJavaBeanとして使用できます。

Q.9 Spring IOCコンテナとは何ですか?

コンテナはSpringFrameworkの中核です。 オブジェクトを作成し、バインドし、構成し、作成から終了までの完全なライフサイクルを担当するのはコンテナーです。

Springコンテナは、依存性注入を使用して、アプリケーションを作成するコンポーネントを管理します。 コンテナは、Javaアノテーション、Javaコード、またはXMLのいずれかによって指定された構成メタデータを読み取ることにより、オブジェクトを作成、設定、および呼び出すための指示を取得します。

Q.10依存性注入とは何ですか?

依存性注入では、オブジェクトを作成する代わりに、オブジェクトの作成方法を説明するだけです。 開発者は、構成ファイル内の特定のコンポーネントに必要なサービスを記述する必要があります。 コード内のコンポーネントにサービスを直接接続する必要はありません。 これらは、SpringIoCコンテナによって相互に接続されています。

Q.11依存性注入は、いくつの方法で実行できますか?

依存性注入を行うには、次の3つの方法があります。

  • コンストラクターインジェクション
  • セッターインジェクション
  • インターフェイスインジェクション

ただし、Spring Frameworkでは、コンストラクターインジェクションとセッターインジェクションのみが使用されます。

Q.12コンストラクターインジェクションとセッターインジェクションの違いは何ですか。

コンストラクターインジェクションセッターインジェクション
不完全または制限された注入はありません。 注入が不完全または制限されている可能性があります。
setterプロパティをオーバーライドしません。 コンストラクタープロパティをオーバーライドします。
変更が行われると、新しいインスタンスが作成されます。 変更が加えられても、新しいインスタンスは作成されません。
多くのプロパティでうまく機能します。 プロパティが少ないほど効果的です。

Q.13 Springでは何種類のIOCコンテナが利用できますか?

通常、2つのIOCコンテナを見つけることができます。

  1. BeanFactory:BeanFactoryは、Beanのグループを構成する一種のファクトリクラスです。 クライアントから要求されるたびにBeanをインスタンス化します。
  2. ApplicationContext:ApplicationContextインターフェースは、BeanFactoryインターフェースの上に作成されます。 BeanFactoryによって提供される機能に加えて、いくつかの追加機能を提供します。

Q.14BeanFactoryとApplicationContextのいくつかの違いについて教えてください。

BeanFactory ApplicationContext
org.springframework.beans.factory.BeanFactoryで説明されているインターフェースです。 これは、org.springframework.context.ApplicationContextで説明されているインターフェースです。
レイジー初期化を使用しますアグレッシブな初期化を使用します
構文を使用してリソースオブジェクトを明示的に提供します独自にリソースオブジェクトを構築および管理します
国際化には役立たない国際化を支援します
アノテーションベースの依存関係には役立ちませんアノテーションベースの依存関係を支援します

Q.15 IoCのいくつかの利点は何ですか?

IoCの利点のいくつかは次のとおりです。

  • これにより、アプリケーションに必要なコードの量が削減されます。
  • 単体テストケースでシングルトンやJNDIルックアップメカニズムを必要としないため、アプリケーションのテストははるかに簡単です。
  • 最小限の労力と最も邪魔にならないメカニズムで緩い結合を促進します。
  • これは、サービスの熱心なインスタンス化と遅延読み込みを支援します。

Q.16春の豆とは何ですか?

Spring Beansは、ユーザーのアプリケーションのバックボーンとして機能するオブジェクトです。 Beanは、SpringIoCコンテナによって制御されます。 つまり、Spring IoCコンテナによってインスタンス化、構成、配線、および管理されます。 Beanは、ユーザーがコンテナーに提供する構成メタデータを使用して作成されます。

Q.17構成メタデータはSpringコンテナにどのように提供されますか?

構成メタデータは、次のいずれかの方法でSpringコンテナに提供できます。

  • アノテーションベースの構成:関連するクラスのアノテーションを使用して、コンポーネントクラス自体へのBeanの配線を記述することができます。 これはデフォルト設定ではありません。 したがって、使用する場合は、使用する前にSpring構成ファイルで有効にする必要があります。
  • XMLベースの構成:Beanに必要な依存関係とサービスは、構成ファイルに記載されています。 これらはXML形式です。 これらは、多くのBean定義とアプリケーション固有の構成オプションで構成されています。 それらは通常、Beanタグで始まります。
  • Javaベースの構成:Spring Frameworkの新しいJava構成サポートの主な機能は、@Beanアノテーション付きメソッドと@Configurationアノテーション付きクラスです。

Q.18 SpringはいくつのBeanスコープをサポートしていますか?

次の5つのスコープをサポートします。

  • シングルトン:これにより、SpringIoCコンテナごとに1つのインスタンスにBean定義のスコープが与えられます。
  • プロトタイプ:これにより、単一のBean定義が任意の数のオブジェクトインスタンスを持つためのスコープが提供されます。

以下のスコープは、ユーザーがWeb対応のApplicationContextを使用している場合にのみ使用できます。

  • リクエスト:これにより、HTTPリクエストにBean定義のスコープが与えられます。
  • セッション:これにより、HTTPセッションにBean定義のスコープが与えられます。
  • グローバルセッション:これにより、グローバルHTTPセッションにBean定義のスコープが与えられます。

Q.19 Spring BeanFactoryContainerのBeanライフサイクルについて説明してください

  1. Springコンテナーは、最初にXMLファイル内のBeanの定義からBeanをインスタンス化します。
  2. 依存性注入を使用するSpringは、すべてのプロパティにデータを入力します。
  3. BeanがBeanNameAwareインターフェースを実行する場合、ファクトリはBeanのIDを指定してsetBeanName()を呼び出します。
  4. BeanがBeanFactoryAwareインターフェースを実行する場合、ファクトリは自身のインスタンスを作成することによってsetBeanFactory()を呼び出します。
  5. Beanに関連するBeanPostProcessorsがある場合は、preProcessBeforeInitialization()メソッドが呼び出されます。
  6. Beanがinitメソッドを指定している場合は、それが呼び出されます。
  7. Beanに関連するBeanPostProcessorsがある場合は、preProcessAfterInitialization()メソッドが呼び出されます。

Q.20Beanの配線について説明してください

Beanの配線は、すべてのBeanがSpringコンテナ内で結合される場合です。 Springコンテナーは、必要なBeanと、Beanをリンクするために依存性注入をどのように使用するかを理解する必要があります。

Q.21自動配線とは何ですか?自動配線のさまざまなモードに名前を付けますか?

Springコンテナには、接続しているBean間の関係を自動配線する機能があります。 Springは、BeanFactoryの内容を確認することにより、Beanのコラボレーターを自動的に解決できます。

Bean自動配線のさまざまなモードは次のとおりです。

  1. いいえ:これは事前に選択されたオプションであり、自動配線がないことを意味します。 配線には明示的なBean参照を使用する必要があります。
  2. byName:Beanの名前に基づいてオブジェクトの依存関係を注入します。 XMLファイル内の正確な名前で説明されているBeanと、そのプロパティをペアにして配線します。
  3. byType:名前が示すように、タイプに応じてオブジェクトの依存関係を挿入します。 タイプがXMLファイル内のBeanの名前の1つと一致する場合、プロパティと一致してワイヤリングします。
  4. コンストラクター:コンストラクターは、クラスのコンストラクターを呼び出すことによって依存関係を注入します。 多くのパラメータがあります。
  5. 自動検出:デフォルトでは、コンテナーはコンストラクターを使用して自動配線します。 失敗した場合は、byTypeによる自動配線を試みます。

Q.22自動配線の制限事項は何ですか?

次のような自動配線を使用する場合に直面する制限/制限がいくつかあります。

  • オーバーライドの可能性:<constructor-arg>および<property>設定を使用して、依存関係を指定できます。 自動配線を無効にします。
  • プリミティブデータ型:プリミティブデータ型、クラス、および文字列を自動配線することはできません。
  • 複雑な性質:自動配線は本質的に混乱を招くため、明示的な配線の方が自動配線よりも優先されます。

Q.23アノテーションベースのコンテナ構成とは何ですか?

XMLセットアップの代わりに、アノテーションベースのコンテナー構成を使用して、Beanの配線を記述します。 開発者は、メソッド、クラス、またはフィールド宣言のアノテーションを使用して、構成をコンポーネントクラスに転送します。

Q.24 Springでアノテーション配線をオンにするにはどうすればよいですか?

Springコンテナでは、注釈の配線はデフォルトでオフになっています。 したがって、アノテーションベースのワイヤリングを使用するには、Spring構成ファイルで<context:annotation-config/>要素を設定して有効にする必要があります。

Q.25Springの@Controller、@ Component、@ Repository、@Serviceなどのさまざまなアノテーションの違いを説明してください。

@Controller:これは、SpringWebMVCコントローラーとしてのクラスを示します。 マークされたBeanを依存性注入コンテナに自動的にインポートします。

@Component:これはJavaクラスをBeanとして示します。 これは、Springが管理するコンポーネントの一般的なステレオタイプです。 Springのコンポーネントスキャンプロセスは、それを取得してアプリケーションコンテキストに取り込むことができます。

@Service:このアノテーションはコンポーネントアノテーションの領域です。 @Componentアノテーションに新しい動作はありません。 インテントを適切に指定するため、サービスレイヤークラスで@Componentの代わりに@Serviceを使用できます。

@Repository:このアノテーションは@Componentアノテーションの領域です。 それは同じ機能と使用法が付属しています。 ただし、DAOにとっては、いくつかの追加の利点があります。 DAOをDIコンテナーに取り込み、未チェックの例外をSpringDataAccessExceptionに変換するために修飾します。

Q.26SpringDAOのサポートについて説明してください

Springでのデータアクセスオブジェクトのサポートにより、Hibernate、JDBC、JDOなどのテクノロジーに適切かつ安定した方法で簡単にアクセスできます。 これにより、面倒なことなく任意のテクノロジーを選択できます。 また、このテクノロジーのそれぞれに関連する例外をキャッチすることについてストレスを感じることなくコーディングすることもできます。

Q.27 Spring JDBC APIで使用できるクラスはどれですか?

JDBCAPIに存在するクラスは次のとおりです。

  1. JdbcTemplate
  2. SimpleJdbcTemplate
  3. NamedParameterJdbcTemplate
  4. SimpleJdbcInsert
  5. SimpleJdbcCall

Q.28 Springを使用してHibernateにアクセスする方法は何ですか?

Springを使用してHibernateにアクセスする方法は2つあります。

  1. コールバックおよびHibernateテンプレートを使用した制御の反転メソッド。
  2. AOPインターセプターノードの適用とHib​​ernateDAOSupportの拡張。

Q.29Springでサポートされているトランザクション管理の種類を挙げてください

Springは2種類のトランザクション管理をサポートしています。 彼らです:

  1. プログラムによるトランザクション管理:ここでは、トランザクションはプログラミングの助けを借りて制御されます。 それは大きな柔軟性を提供します。 ただし、維持するのは難しいです。
  2. 宣言型トランザクション管理:ここでは、トランザクション管理はビジネスコードとは別に保持されます。 トランザクションを制御するために使用できるのは、注釈またはXMLベースの構成のみです。

Q.30AOPについて説明してください

AOPはアスペクト指向プログラミングとして知られています。 これは、ソフトウェアエンジニアが横断的関心事や行動をモジュール化して、標準的な義務の分割を削減できるようにするプログラミングシステムです。 横断的関心事の例は、ロギングとトランザクション管理です。 AOPのコアはアスペクトです。 これは、さまざまなクラスを再利用可能なモジュールに影響を与える可能性のあるプラクティスを例示しています。

Q.31アスペクトとはどういう意味ですか?

アスペクトは、複数のオブジェクトにまたがる懸念事項のモジュール化です。 J2EEにおける横断的関心事の良い例は、トランザクション管理アプリケーションです。 アスペクトは、通常のクラス、またはSpringFrameworkの@Aspectアノテーションで説明されている通常のクラスを使用して実行されます。

Q.32ジョインポイントとは何ですか

プログラムの実行がJoinPointと呼ばれるポイント。たとえば、例外の処理やメソッドの実行などです。 Spring AOPでは、JoinPointは一貫してメソッドの実行を表します。

Q.33 Spring MVCフレームワークとはどういう意味ですか?

Spring Web MVCフレームワークは、モデル-ビュー-コントローラーアーキテクチャーを提供し、すぐに使用できるコンポーネントを提供します。 これらのコンポーネントを使用して、柔軟で疎結合のWebアプリを作成できます。 MVCパターンは、ビジネスロジック、入力ロジック、UIロジックなどのアプリケーションのさまざまな側面を分離すると同時に、これらのコンポーネントすべての間に緩い結合を与えることをサポートします。

Q.34DispatcherServletについて説明してください

これは、SpringWebMVCフレームワークのコアです。 すべてのHTTPリクエストとレスポンスを管理します。 DispatcherServletは、構成ファイルからハンドラーマッピングのエントリを取得し、要求をコントローラーに渡します。 次に、コントローラーはモデルとビューのオブジェクトを提供します。 DispatcherServletは、構成ファイル内のビューリゾルバーのエントリをマークし、定義されたビューコンポーネントを呼び出します。

Q.35WebApplicationContextについて説明してください

WebApplicationContextは、プレーンなApplicationContextの拡張です。 Webアプリケーションに必要な機能がいくつかあります。 テーマを解決し、リンク先のサーブレットを決定する機能があるため、通常のApplicationContextとは異なります。

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

結論

インタビュアーが尋ねる春の面接に関する上位の質問のほとんどを取り上げました。 詳細に興味があり、業界の専門家からの指導が必要な場合は、upGrad&IIITBangloreのExecutivePG Program Full- StackSoftwareDevelopmentをご覧ください。

Java Springとは何ですか?

SunMicrosystemsによって開発されたJavaSpringは、アプリケーション開発をサポートするプラットフォームです。 Springは、スケーラブルなアプリケーションの作成に役立つJavaベースのサービスとAPIのコレクションです。 Springはオープンソースのアプリケーション開発フレームワークです。 Javaベースのアプリケーションで使用できるため、オープンソースになります。 Springは、ユーティリティクラス、例外処理、AOP、およびエンタープライズアプリケーションをサポートするためのインターフェイスを提供します。 Java Springは、Javaベースのサーバー側アプリケーションをサポートし、開発プロセス全体を簡素化するプラットフォームです。 これは、Javaベースのサーバーで使用できる柔軟性の高いプラットフォームです。 ユーティリティクラスと例外処理サービスを提供します。 トランザクションサポートシステムがあり、データベースとの簡単なバインドを提供します。

Spring MVCとは何ですか?

Spring MVC(Model View Controller)は、Javaで記述されたオープンソースのWebアプリケーションフレームワークであり、SpringSourceのチームによって過去4年間に開発されました。 サーブレットAPIの上に開発され、Java EE5WebアプリケーションおよびGoogleWebToolkitアプリケーションで使用できます。 また、SpringDataおよびSpringAOPと統合されているため、Hibernate、JPA、アスペクト指向プログラミングなどのフレームワークで使用できます。 Spring MVCは高度に構成可能であり、Springの制御の反転(IoC)の原則をサポートします。 ステートフルなWebアプリケーションの構築をサポートしているため、リクエスト間でアプリケーションの状態情報を維持できます。

Spring Hibernateとは何ですか?

Hibernateは、Java用のオブジェクトリレーショナルマッピング(ORM)ライブラリです。 Hibernateは、Javaクラスオブジェクトの永続性を処理するように設計されています。 これは、強力で軽量、そして非常にポータブルなORMフレームワークです。 Hibernateは、GNU劣等一般公衆利用許諾契約書(LGPL)の下で利用できます。 Spring Dataは、Spring Framework内のプロジェクトであり、使い慣れたSpring Inversion of Control(IoC)パラダイムを使用して、よりオブジェクト指向の方法でデータにアクセスして管理するための一連のコンポーネントを提供します。 Hibernateは単なるORMフレームワークです。 一方、Spring Dataは、リレーショナルデータベース、NoSQL、フラットファイルなどのさまざまなストレージメカニズム上に抽象化レイヤーを作成するための取り組みです。