Ali P7のボスが共有した22のSpringBootインタビューの質問が、ついに無料でやって来ました!

SpringBootインタビューの質問

1. Spring Bootとは何ですか?

2. Spring Bootの利点は何ですか?

3. JavaConfigとは何ですか?

4.サーバーを再起動せずにSpringBootで変更を再ロードするにはどうすればよいですか?

5. Spring Bootのモニターとは何ですか?

6. Spring Bootでアクチュエータエンドポイントセキュリティを無効にする方法は?

7.カスタムポートでSpringBootアプリケーションを実行するにはどうすればよいですか?

8. YAMLとは何ですか?

9. Spring Bootアプリケーションのセキュリティを実現するにはどうすればよいですか?

10. Spring BootとActiveMQを統合するにはどうすればよいですか?

11. Spring Bootを使用してページングと並べ替えを実装するにはどうすればよいですか?

12. Swaggerとは何ですか?Spring Bootで実装しましたか?

13. Springプロファイルとは何ですか?

14. Spring Batchとは何ですか?

15. FreeMarkerテンプレートとは何ですか?

16. Spring Bootを使用して例外処理を実装するにはどうすればよいですか?

17.どのスターターMaven依存関係を使用しましたか?

18. CSRF攻撃とは何ですか?

19. WebSocketとは何ですか?

20. AOPとは何ですか?

21. Apache Kafkaとは何ですか?

22.すべてのSpringBootマイクロサービスをどのように監視しますか?

 

1. Spring Bootとは何ですか?

何年にもわたって、新しい機能の追加により、春はますます複雑になっています。Springの公式ウェブサイトページにアクセスすると、アプリケーションで使用できるSpringプロジェクトのさまざまな機能がすべて表示されます。新しいSpringプロジェクトを開始する必要がある場合は、ビルドパスを追加するか、Mavenの依存関係を追加し、アプリケーションサーバーを構成して、Spring構成を追加する必要があります。したがって、新しい春のプロジェクトを開始するには、すべてを最初から行う必要があるため、多大な労力が必要です。

SpringBootはこの問題の解決策です。Spring Bootは、既存のSpringフレームワークの上に構築されています。Spring Bootを使用すると、以前に実行しなければならなかったすべての定型コードと構成を回避できます。したがって、Spring Bootは、最小限の作業で既存のSpring機能をより堅牢に使用するのに役立ちます。

 

2. Spring Bootの利点は何ですか?

SpringBootの利点は次のとおりです。

1.開発とテストの時間と労力を削減します。

2. JavaConfigを使用すると、XMLの使用を回避できます。

3.多数のMavenインポートとさまざまなバージョンの競合を回避します。

4.アドバイスと開発方法を提供します。

5.デフォルト値を指定して、開発をすばやく開始します。

6.個別のWebサーバーは必要ありません。これは、Tomcat、Glassfishな​​どを起動する必要がなくなったことを意味します。

7. web.xmlファイルがないため、必要な構成が少なくて済みます。@Configurationアノテーションが付けられたクラスを追加してから、@ Beanアノテーションが付けられたメソッドを追加するだけで、Springはオブジェクトを自動的にロードし、以前と同じように管理します。@Autowiredをbeanメソッドに追加して、Springに必要な依存関係を自動的にロードさせることもできます。

8.環境ベースの構成これらのプロパティを使用して、使用している環境をアプリケーションに渡すことができます:-Dspring.profiles.active = {enviornment}。メインのアプリケーションプロパティファイルをロードした後、Springは後続のアプリケーションプロパティファイルを(application {environment} .properties)にロードします。

 

3. JavaConfigとは何ですか?

Spring JavaConfigは、Springコミュニティの製品であり、SpringIoCコンテナを構成するための純粋なJavaメソッドを提供します。したがって、XML構成の使用を回避するのに役立ちます。JavaConfigを使用する利点は次のとおりです。

(1)オブジェクト指向構成。構成はJavaConfigのクラスとして定義されているため、ユーザーはJavaのオブジェクト指向機能を最大限に活用できます。ある構成クラスは別の構成クラスを継承したり、@ Beanメソッドをオーバーライドしたりできます。

(2)XML構成を削減または削除します。依存性注入の原理に基づく外部化された構成の利点が証明されています。ただし、多くの開発者はXMLとJavaを切り替えたくありません。JavaConfigは、XML構成の概念と同様にSpringコンテナーを構成するための純粋なJavaメソッドを開発者に提供します。技術的な観点からは、JavaConfig構成クラスのみを使用してコンテナーを構成することは可能ですが、実際、多くの人はJavaConfigとXM​​Lを組み合わせて使用​​することが理想的であると考えています。

(3)型安全性とリファクタリングに適しています。JavaConfigは、Springコンテナを構成するためのタイプセーフな方法を提供します。Java 5.0のジェネリックスのサポートのおかげで、キャストや文字列ベースのルックアップなしで、名前ではなくタイプでBeanを取得できるようになりました。

 

4.サーバーを再起動せずにSpringBootで変更を再ロードするにはどうすればよいですか?

これは、DEVツールを使用して実現できます。この依存関係を使用すると、変更を保存でき、組み込みのTomcatが再起動します。Spring Bootには、開発者の生産性を向上させるのに役立つ開発ツール(DevTools)モジュールがあります。Java開発者が直面する主な課題の1つは、ファイルの変更をサーバーに自動的にデプロイし、サーバーを自動的に再起動することです。開発者は、サーバーを再起動せずにSpringBootで変更を再読み込みできます。これにより、毎回手動で変更を展開する必要がなくなります。Spring Bootは、最初のバージョンをリリースしたとき、この機能を備えていませんでした。これは、開発者にとって最も要望の多かった機能です。DevToolsモジュールは、開発者のニーズを完全に満たします。このモジュールは、実稼働環境では無効になります。また、アプリケーションをより適切にテストするためのH2データベースコンソールも提供します。

 
  1. <dependency>

  2. <groupId>org.springframework.boot</groupId>

  3. <artifactId>spring-boot-devtools</artifactId>

  4. <optional>true</optional>

  5.  

 

5. Spring Bootのモニターとは何ですか?

スプリングブートアクチュエータは、スプリングブートフレームワークの重要な機能の1つです。Springブートモニターは、実稼働環境で実行中のアプリケーションの現在の状態にアクセスするのに役立ちます。実稼働環境でチェックおよび監視する必要のあるいくつかの指標があります。一部の外部アプリケーションでさえ、これらのサービスを使用して、関連する担当者へのアラートメッセージをトリガーしている場合があります。モニターモジュールは、ステータスを確認するためにHTTPURLとして直接アクセスできるRESTエンドポイントのセットを公開します。

 

6. Spring Bootでアクチュエータエンドポイントセキュリティを無効にする方法は?

デフォルトでは、すべての機密HTTPエンドポイントは安全であり、ACTUATORロールを持つユーザーのみがそれらにアクセスできます。セキュリティは、標準のHttpServletRequest.isUserInRoleメソッドを使用して実装されます。を使用してセキュリティを無効にすることができます。アクチュエータエンドポイントがファイアウォールの背後でアクセスされる場合にのみ、セキュリティを無効にすることをお勧めします。

 

7.カスタムポートでSpringBootアプリケーションを実行するにはどうすればよいですか?

カスタムポートでSpringBootアプリケーションを実行するために、application.propertiesでポートを指定できます。server.port = 8090

 

8. YAMLとは何ですか?

YAMLは、人間が読める形式のデータシリアル化言語です。通常、構成ファイルに使用されます。プロパティファイルと比較して、構成ファイルに複雑なプロパティを追加する場合、YAMLファイルはより構造化されており、混乱が少なくなっています。YAMLには階層的な構成データがあることがわかります。

 

9. Spring Bootアプリケーションのセキュリティを実現するにはどうすればよいですか?

Spring Bootのセキュリティを実現するには、spring-boot-starter-security依存関係を使用し、セキュリティ構成を追加する必要があります。必要なコードはごくわずかです。構成クラスは、WebSecurityConfigurerAdapterを拡張し、そのメソッドをオーバーライドする必要があります。

 

10. Spring BootとActiveMQを統合するにはどうすればよいですか?

Spring BootとActiveMQを統合するために、依存関係を使用します。構成はほとんど必要なく、ボイラープレートコードも必要ありません。

 

11. Spring Bootを使用してページングと並べ替えを実装するにはどうすればよいですか?

SpringBootを使用してページングを実装するのは非常に簡単です。Spring Data-JPAを使用して、ページング可能ファイルをリポジトリメソッドに渡します。

 

12. Swaggerとは何ですか?Spring Bootで実装しましたか?

SwaggerはAPIを視覚化するために広く使用されており、SwaggerUIを使用してフロントエンド開発者にオンラインサンドボックスを提供します。Swaggerは、RESTful Webサービス、仕様、および完全なフレームワーク実装の視覚的表現を生成するためのツールです。これにより、サーバーと同じ速度でドキュメントを更新できます。Swaggerを介して正しく定義されている場合、コンシューマーは最小限の実装ロジックを使用して、リモートサービスを理解して対話できます。したがって、Swaggerは、サービスを呼び出すときの当て推量を排除します。

 

13. Springプロファイルとは何ですか?

Spring Profilesを使用すると、ユーザーは構成ファイル(dev、test、prodなど)に基づいてBeanを登録できます。したがって、アプリケーションが開発中に実行されている場合、特定のBeanのみをロードできますが、PRODUCTIONでは、特定の他のBeanをロードできます。SwaggerドキュメントはQA環境にのみ適用可能であり、他のすべてのドキュメントは無効になっているという要件があるとします。これは、構成ファイルを使用して実行できます。Spring Bootを使用すると、構成ファイルを非常に簡単に使用できます。

 

14. Spring Batchとは何ですか?

Spring Boot Batchは再利用可能な機能を提供します。これらの機能は、ログ/トレース、トランザクション管理、ジョブ処理統計、ジョブ再開、スキップ、リソース管理など、多数のレコードを処理する場合に非常に重要です。また、より高度な技術サービスと機能を提供します。最適化とパーティショニング技術により、非常に高いバッチと高性能のバッチ処理ジョブを実現できます。単純および複雑な大規模なバッチ処理ジョブは、フレームワークを使用して、重要で大量の情報を非常にスケーラブルな方法で処理できます。

 

15. FreeMarkerテンプレートとは何ですか?

FreeMarkerは、動的なWebページ生成のためのMVCソフトウェアアーキテクチャの使用に最初に焦点を合わせたJavaベースのテンプレートエンジンです。Freemarkerを使用する主な利点は、プレゼンテーション層とビジネス層が完全に分離されていることです。プログラマーはアプリケーションコードを処理でき、デザイナーはhtmlページのデザインを処理できます。最後に、freemarkerを使用してこれらを組み合わせ、最終的な出力ページを作成します。

 

16. Spring Bootを使用して例外処理を実装するにはどうすればよいですか?

Springは、ControllerAdviceを使用して例外を処理するための非常に便利な方法を提供します。ControlerAdviceクラスを実装して、コントローラークラスによってスローされたすべての例外を処理します。

 

17.どのスターターMaven依存関係を使用しましたか?

次の依存関係のいくつかが使用されます

spring-boot-starter-activemq

spring-boot-starter-security

これにより、依存関係が減り、バージョンの競合が減ります。

 

18. CSRF攻撃とは何ですか?

CSRFは、クロスサイトリクエストフォージェリの略です。これは、エンドユーザーに現在認証されているWebアプリケーションに対して不要なアクションを実行させる攻撃です。CSRF攻撃は、データの盗難ではなく、特に状態変更要求を標的にします。これは、攻撃者が偽造された要求への応答を表示できないためです。

 

19. WebSocketとは何ですか?

WebSocketは、単一のTCP接続を介して全二重通信チャネルを提供するコンピューター通信プロトコルです。

1.WebSocketは双方向です-WebSocketクライアントまたはサーバーを使用してメッセージ送信を開始します。

2.WebSocketは全二重です-クライアントとサーバーの通信は互いに独立しています。

3.単一のTCP接続-最初の接続はHTTPを使用し、その後、この接続はソケットベースの接続にアップグレードされます。次に、この単一の接続が将来のすべての通信に使用されます

4.軽量-httpと比較して、WebSocketメッセージのデータ交換ははるかに軽量です。

 

20. AOPとは何ですか?

ソフトウェア開発プロセスでは、アプリケーションの複数のポイントにまたがる機能は、クロス問題と呼ばれます。これらの横断的問題は、アプリケーションの主要なビジネスロジックとは異なります。したがって、これらの横断的関心事をビジネスロジックから分離することは、アスペクト指向プログラミング(AOP)の場所です。

 

21. Apache Kafkaとは何ですか?

Apache Kafkaは、分散パブリッシュ/サブスクライブメッセージングシステムです。これは、スケーラブルでフォールトトレラントなパブリッシュ/サブスクライブメッセージングシステムであり、分散アプリケーションの構築を可能にします。これはApacheのトップレベルプロジェクトです。Kafkaは、オフラインおよびオンラインのメッセージ消費に適しています。

 

22.すべてのSpringBootマイクロサービスをどのように監視しますか?

Spring Bootは、各マイクロサービスのメトリックを監視するための監視エンドポイントを提供します。これらのエンドポイントは、アプリケーションに関する情報(アプリケーションが起動されているかどうかなど)や、アプリケーションのコンポーネント(データベースなど)が正しく機能しているかどうかを取得するのに役立ちます。ただし、モニターを使用することの主な欠点または問題の1つは、アプリケーションのステータスまたは状態を理解するために、アプリケーションのナレッジポイントを個別に開く必要があることです。50個のアプリケーションが関与するマイクロサービスを想像してみてください。管理者は50個すべてのアプリケーションの実行端末にアクセスする必要があります。この状況に対処するために、にあるオープンソースプロジェクトを使用します。これは、複数のアプリケーションのメトリックを視覚化できるWebUIを提供するSpringBootActuator上に構築されています。

2020年に複数の企業の1,000のJavaインタビューの質問と400ページを超えるPDFドキュメントを整理するのに1か月かかりました。私の公式アカウントに注目してください:Kylinはバグを変更し、記事は更新され、並べ替えられた情報中にも配置されます。

上記のインタビューで尋ねられた知識のポイントに応えて、私はインターネット会社のJavaプログラマーインタビューに関連するインタビューの質問と回答のほとんどを要約しました。ドキュメントとアーキテクチャ資料はすべての人と共有されます。インタビューの前にあなたを助けたいと思います。レビューまた、良い仕事を見つけることで、インターネットで情報を検索して学ぶ時間を節約できます。

 

やっと

みんなでコミュニケーションをとることを歓迎します。情報を整理するのは簡単ではありません。記事が気に入ったら、忘れずにフォローして、いいねをください。サポートに感謝します。

おすすめ

転載: blog.csdn.net/QLCZ0809/article/details/112253564
おすすめ