あなたは Java Spring Boot 開発者で、次の面接を受けることを楽しみにしていますが、どのような質問が予想されるかわかりませんか?私たちがお手伝いします!
この記事では、Spring Boot 面接でよく聞かれるいくつかの質問と、面接官があなたをテストするために使用できる回答を概説することで、適切な準備を行うのに役立ちます。
面接官は、戦略的な Java Spring Boot 質問を使用して、指定された役割に関連する面接対象者のスキル レベルをテストします。したがって、関連する質問を準備し、その質問に答える方法を知っておく必要があります。
インタビューの質問とそれに対応する回答に進む前に、Spring Boot とは何か、そしてそれが Java 開発者にとってどれほど役立つかについての基本的な概要を説明しましょう。
Java Spring Bootとは何ですか?
この Java フレームワークは、2014 年に重要なチームによって作成されました。オープンソース フレームワークである Spring Boot は、独立した運用グレードのアプリケーションを効率的に開発し、Java 仮想マシン (JVM) 上でも実行できます。
Java 開発者は、迅速かつ簡単なセットアップ プロセスと安全な構成時間のため、Web アプリケーションやマイクロサービスの開発に Java を好んでいます。
Spring Boot による Spring ベースのアプリケーションの簡単なセットアップと構成は、次の 3 つのコア機能によって可能です。
- 自動構成 – Spring アプリケーションの自動構成です。
- Spring Boot は、使用する構成のデフォルトと、必要な依存関係のためにインストールするパッケージに対して独自のアプローチを提供します。この独自のアプローチは、プロジェクトを迅速にセットアップするのに役立ちます。
- Sprsetupoot を使用すると、Web サーバーを必要とせずにアプリケーションを独立して実行できます。
Spring Boot は Java 開発者にとってどのように役立ちますか?
1 つは、Spring Boot を使用する Java 開発者は、実稼働グレードの Spring アプリケーションの開発に必要なすべてのコンポーネントの自動構成を容易にすることです。これにより、長期的には開発時間が短縮され、最終的には効率が向上します。
Spring Boot は、Spring JDBC、Spring Data、Spring Security、Spring ORM を含む Spring のエコシステムとも簡単に統合できます。
Java 開発者は、Spring Boot を Oracle、MySQL、PostgreSQL、MongoDB などのさまざまなデータベースに接続することもできます。
もちろん、XML 構成、Java Beans、データベース トランザクションなどの柔軟な構成も便利な機能です。
したがって、Spring Boot の基本的な概要を理解したところで、面接の準備に役立つ Spring Boot の面接でよく聞かれる質問と回答のいくつかを検討してみましょう。
Spring Boot インタビューの質問と回答
Spring Boot にはどのような機能がありますか?
これらの人気のある機能には次のようなものがあります。
- Spring Boot CLI は、Spring Boot アプリケーションを作成するための Groovy を提供します。長期的には、定型コードは回避されます。
- Spring Boot は、潜在的なセキュリティ脅威からアプリケーションを簡単に保護するロギングとセキュリティ機能を提供します。
- プロジェクトに関連するコンポーネントの自動構成が提供されるため、不要な WAR ファイルのリスクが回避されます。
- スターター Initializer は、デフォルトの内部プロジェクト構造を構築します。こうすることで、プロジェクト構造を手動で設定する必要がなくなります。
- Spring Boot アクチュエーター機能を使用すると、アプリケーションの実行時に洞察とメトリクスにアクセスできます。
- もちろん、Spring Boot の重要な機能の 1 つである Starter dependency は、特定の機能の一般的に使用される依存関係を集約するのに役立ちます。
Spring Boot スターターとは何ですか?
Spring Boot スターターは、アプリケーションの依存関係を有効にする一連の依存関係管理プロバイダーを含む依存関係記述子です。これらは、フレームワークに自動依存関係解決を提供します。スターターは開発を容易かつ迅速に強化します。
Spring Boot のアクチュエーターとは何ですか?またその利点は何ですか?
アクチュエーターは、アプリケーションの実行中に内部で何が起こっているかを監視できる Spring Boot 機能の 1 つです。
たとえば、デバッグ中に、CPU 使用率や Bean の識別などの機能にアクセスできるようにすることで、ログの分析にアクチュエーターを使用できます。
さらに、アクチュエータは、情報を監視および管理する実稼働対応の REST エンドポイントへの簡単なアクセスを提供するだけでなく、Web からデータを取得することもできます。
thymeleaf とは何ですか? thymeleaf の使用方法は何ですか?
Thymeleaf は、Spring と HTML5 Java Web アプリケーションの両方に自然なテンプレート レイアウトを作成する Java のサーバー側テンプレートです。
Spring Boot は、pom.xml ファイルの spring-boot-starter-thymeleaf 依存関係を使用して thymeleaf の自動構成を実行し、動的 Web コンテンツを提供します。
Spring Boot が thymeleaf テンプレートまたは HTML ファイルを読み取ってレンダリングできるようにするには、テンプレートを src/main/resources/templates に配置します。
次に、Thymeleaf は、index.html ファイルを解析し、インデックス ファイルで使用可能な動的な値の代わりに、コントローラー クラスから渡された実際の値を使用します。
この後、Spring Boot アプリケーションが実行されるとすぐに、メッセージが Web ブラウザーに表示されます。
org.springframework.boot spring-boot-starter-thymeleaf
Spring Initializer を使用して Spring Boot プロジェクトを作成するプロセスについて説明します。
Spring Web ツールである Spring Initializr を使用すると、プロジェクトの詳細を指定することで、いくつかの手順で Spring Boot プロジェクトを作成できます。
- Spring intializr に移動し、入力フィールドに入力します。
- 「生成」 ボタンをクリックすると、プロジェクトのダウンロードが開始されます。
-
ダウンロードしたプロジェクトを zip ファイルから抽出し、IDE から開きます。 IDE から、
「ファイル」->「新規」
->
「既存のソースからの
プロジェクト」->「Spring-boot-app」に移動し、pom.xml ファイルを選択します。変更のインポートのプロンプトをクリックすると、プロジェクトが同期されます。この後、必ず application.properties ファイルに移動し、server.port 番号を
server.port=7000に編集してください。 - ここで、 src->main->java->com.gfg.Spring.boot.app からアプリケーションを実行します。
Spring Boot の JPA とは何ですか?
これは、オブジェクト リレーション マッピング (ORM) を使用してリレーショナル データを管理し、Java オブジェクトまたは Java クラスとアプリケーションのリレーショナル データベース間のデータへのアクセスを可能にする Java の仕様です。
JPA は、プラットフォームに依存しないオブジェクト指向のクエリ言語である Java Persistent Query Language (JPQL) を使用します。
JPA では、JPA が提供する Entity Manager API を使用して、データベースに対するクエリ処理とオブジェクト トランザクションを実行できます。
Spring Boot の自動構成とは何ですか?
自動構成では、アプリケーションに追加した jar 依存関係を使用して、Spring Boot アプリケーションの構成を自動化しようとします。
アプリケーションのクラスパス内の利用可能な依存関係に応じて、自動構成により、JPA や Spring セキュリティなどの Spring 固有のモジュールの組み込みオブジェクトが宣言されます。
Spring アノテーションとは何ですか?
Spring アノテーションは、プログラム スニペットに関する情報を提供するメタデータを参照し、そのプログラムに補足データを追加します。クラスやメソッドなどのコード コンポーネントは、多くの場合、アノテーションに関連付けられます。
注釈は、プログラムの動作やコンパイルされたコードの後続の動作に直接影響を与えません。
それらの構文は「
@
」記号で始まります。
Spring Boot には、次の 6 つの主要なアノテーション タイプが用意されています。
- Spring コアのアノテーション
- Spring データの注釈
- Spring Bean アノテーション
- Spring Web アノテーション
- 春のスケジュールの注釈
- Spring Boot アノテーション
Spring Data REST とは何ですか?
Spring Data REST は、最小限のコードを使用して Spring Data リソース周辺のリソースを RESTful で公開します。
次の例では、POST メソッドを使用して、URL として http://localhost/example 、ヘッダーとして Content-Type: application/json を使用してコンテンツをリクエストします。
リクエスト内容:
{
"name": "Jimmy",
"Gender": "Male",
"Age": 23
}
応答内容:
{
"name": "Jimmy",
"Gender": "Male",
"Age": 23
"_links": {
"self": {
"href": "http://localhost:8080/example/1"
},
"person": {
"href": "http://localhost:8080/example/1"
}
}
}
Spring Boot DevTools の必要性は何ですか?
これらは、開発を容易にし、開発時間を節約するために、そのプロパティがそれぞれの開発環境に適用される事前定義されたツールの高度なセットです。
Spring Boot アプリケーションのコードを変更するたびに、Spring Boot DevTools 機能が自動的に再起動されます。したがって、コードを変更するたびにアプリケーションを手動で再起動する手間が省けます。
スプリングデータとは何ですか?
Spring データは、基礎となるデータ ストアの特殊な特性を保持し続けながら、開発者がリレーショナル データや非リレーショナル データ、クラウド ベースのデータ サービスなどのデータ アクセス テクノロジに簡単にアクセスできるようにすることを目指しています。
Bean が存在するときに自動設定を中止するように指示するにはどうすればよいでしょうか?
ここでは、次のように name 属性と value 属性を含む @ConditionalOnMissingBean アノテーションを使用します。
- value 属性には、チェックする Bean タイプが格納されます。
- チェックする Bean の名前を指定する name 属性
Spring Boot でデータベースからデータをフェッチするにはどうすればよいですか?
次の手順を使用して、MySQL データベースから Spring Boot アプリケーションにデータにアクセスできます。
ステップ 1:
create DATABASE person
コマンドを使用して、MySQL にデータベースを作成します。
ステップ 2: データベース内にテーブルを作成します。
CREATE TABLE person(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255));
ステップ 3: Spring Boot アプリケーションを作成し、それに JDBC、MySQL、および必要な Web 依存関係を追加します。
ステップ 4: 以下のように application.properties ファイルからデータベースを構成します。
spring.datasource.url=jdbc:mysql://localhost:3306/personDetails
spring.datasource.username=example123
spring.datasource.password=example123
spring.jpa.hibernate.ddl-auto=create-drop
ステップ 5: 次に、コントローラー クラスでリクエストを処理しましょう。
package com.person;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class JdbcController {
@Autowired
JdbcTemplate jdbc;
@RequestMapping("/save")
public String index(){
jdbc.execute("insert into person (name)values(Trial)");
return "Name entered Successfully";
}
}
最後に、データベース エントリをチェックしながらアプリケーションを実行して、アクセスされたデータを確認します。
なぜ Spring プロファイルが必要なのでしょうか?
Spring プロファイルを使用すると、アプリケーションのさまざまな部分の構成を分離し、特定の開発に利用できます。
また、Spring プロファイルを使用すると、開発者は Spring プロファイルが利用できない場合に環境固有の外部構成を管理する手間が省けます。
さらに、これにより同期を保つことが難しくなり、特定の環境固有のパラメータに応じて特定の必要なものを利用するファクトリのようなコンポーネントをいくつか作成する必要がさらに増えることになります。
Spring Boot で組み込み Tomcat サーバーのポートを変更できますか?
はい、できます。
これを行うには、
application.properties
ファイルを操作して
server.port
プロパティを組み込み、それに選択したポートを割り当てます。 Spring Boot は、アプリケーションのプロパティ ファイルを自動的にロードし、必要な構成をアプリケーションに適用します。
たとえば、
server.port
番号をデフォルト値の 8080 から
server.port= 8081
に変更できます。
Log4j をログ用に構成するにはどうすればよいですか?
次のいくつかの簡単な手順で、ログ記録用に Log4j を構成できます。
- まず、Java プロジェクトを作成し、そのプロジェクトを右クリックします。 「MyEclipse」->「ファイル」->「新規」->「Java プロジェクト」 に移動してプロジェクトに名前を付け、「完了」をクリックします。
- 次に、Java プロジェクト名を右クリックし、「ビルド パス」->「ビルド パスの構成」を選択します。この手順では、log4j ファイルを追加します。
- ライブラリに移動し、 「外部 JARS の追加」 ボタンをクリックし、表示されるドロップダウン メニューから log4j ファイルを選択します。次に「OK」をクリックします。
- log4j.properties ファイルという名前の新しい Java ファイルを作成し、[完了] をクリックしてこのファイルをクラスパスに追加します。
- クラスパスから「詳細」をクリックし、 「フォルダーの追加」オプションを選択して、 忘れずに「OK」をクリックしてください。
- これで、log4j.properties ファイルを検索し、「OK」をクリックしてプロジェクトを実行できるようになります。
- コンソールで以下の出力を確認してください。
[main] DEBUG Example – Hello this is a debug message
[main] INFO Example – Hello this is an info message
IoCコンテナとは何ですか?
IoC (Inversion of Control) コンテナは、依存関係の注入を自動的に実装するコア Spring コンテナです。これはクラスのアプリケーションをインスタンス化し、オブジェクトの構成と必要な依存関係の組み立てを担当します。
また、インスタンス化から破棄までのオブジェクトのライフサイクルも管理します。
IoC は、Java コード、XML、および Java アノテーションのメタデータ構成を使用してこれらのタスクを実行します。
コンテナは Java オブジェクトとこれらのオブジェクトのライフサイクルを制御するため、制御の反転と呼ばれます。それ以外の場合、これは開発者のタスクです。
Maven を使用して Spring Boot アプリケーションを作成する方法を説明する
このプロセスには一連の手順が必要です。
ステップ 1: プロジェクトのタイプを選択します。
ステップ 2: プロジェクトに名前を付けて設定し、完了ボタンをクリックしてプロジェクトを作成します。
ステップ 3: 次に、Maven プロジェクトの pom.xml ファイルを構成して、そこから Spring Boot プロジェクトを作成します。
pom.xml ファイル:
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javatpoint</groupId>
<artifactId>spring-boot-example</artifactId>
<version>0.0.1-SNAPS<name>JavaTpoint Spring Boot Example</name>
</project>
この構成には、Maven プロジェクトへの親の追加が含まれます。これにより、Maven プロジェクトが親プロジェクトの子プロジェクトとして宣言されます。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
ステップ 4: 次に、Web 依存関係 spring-boot-starter-web を pom.xml に追加します。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
ステップ 5 : プロジェクトの Java バージョンを追加します。
<properties>
<java.version>1.8</java.version>
</properties>
ステップ 6: 新しい依存関係を追加するたびに、Maven プロジェクトを更新する必要があることに注意してください。
ステップ 7: src/main/java パッケージ 内に Java クラスを作成して、Maven プロジェクトを実行可能にします。
ステップ 8: 次に、Spring アプリケーションのクラスの静的 run メソッドを呼び出します。
ステップ 9: 最後に、クラスを Java アプリケーションとして実行します。
Spring Boot の Spring に対する利点は何ですか?
- Spring Boot のブートイニシャライザを使用してソース言語をコンパイルするブートストラップ機能 (ブートストラップと呼ばれる手法) により、ユーザーのデバイスのスペースが節約され、アプリケーションのロード時間も短縮されます。
- Spring とは異なり、Spring Boot では、親の POM (親オブジェクト モデル) や XML ファイルに依存せずに、 spring-boot-dependency を追加した後、依存関係を管理できます。
- Spring Boot を使用すると、開発者は XML 構成を使用せずに、アノテーションまたは XML 構成を使用することもできます。
- 開発者は、アプリケーションのセットアップに必要な定型コードが少ない Spring Boot を好みます。これは、Spring Boot にはインメモリ データベースと組み込み Tomcat サーバーが付属しており、定型コードが減少しているためです。一方、Spring にはより多くの定型コードがあります。
- Spring Boot は必ずしも WAR (Web アプリケーション リソース) ファイルを必要とするわけではなく、JAR (Java リソース) のみに依存できます。JAR (Java リソース) は、構造が小さく単純であるため、ユーザーや開発者にとってより便利です。
- Spring Boot は、Tomcat や Jetty などのサーバーも自動的に組み込みます。したがって、開発者は Spring で行うはずのサーバーを手動でセットアップする必要はありません。
Spring Boot でページネーションを行うにはどうすればよいですか?
ページネーション プロセスでは、リソースを節約するためにデータがセクションに分割されます。これには、ページ サイズとページ番号の 2 つのフィールドが必要です。
このプロセスには、次のようないくつかの手順が含まれます。
ステップ 1:
初期セットアップ
エンティティを構成するには、ドメイン クラスとして「人」という名前を付けます。
@Entity
public class Person {
@Id
private long id;
private String name;
}
ステップ 2:
リポジトリの作成
次に、
PagingAndSortingRepository
extends
PersonRepository
を使用して、ページングと並べ替えのための
findAll(Pageable pageable
) メソッドと
findAll(Sort sort)
メソッドをそれぞれ取得できるようにします。
public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> {
List<Product> findAllByPrice(double price, Pageable pageable);
}
ステップ 3:
ページネーションのステップ
ここでの最初のステップには、
PageRequest
オブジェクトの作成が含まれます。
Pageable
インターフェイスを実装する要求に応じてページ番号とページ サイズを渡すことによって。
Pageable firstPageWithTwoElements = PageRequest.of(0,2);
Pageable secondPageWithThreeElements = PageRequest.of(1,3);
次に、この PageRequest オブジェクトをパラメーターとしてリポジトリ メソッドに渡します。
Page<Person> allProducts = personRepository.findAllByPrice(findPageWithTwoElements);
List<Items> allTwoDollarItems = itemsRepository.findAllByPrice(2, secondPageThreeElements)
デフォルトでは、
findAll(Pageable pageable)
メソッドは
Page<T>
オブジェクトを返します。
カスタム自動構成を登録する方法を説明する
@EnableAutoConfiguration キー META-INF/spring.factories ファイルの下で、完全修飾名を指定します。このステップでは、自動構成クラスを登録します。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration
Maven を使用してプロジェクトをビルドするには、ファイルを resource/META-INF ディレクトリに配置する必要があります。
Spring Boot のブートストラップとは何ですか?
ブートストラップは、Spring Boot アプリケーションの起動時にロジックを実行するプロセスです。
BootInitializr は Spring Boot でソース言語をコンパイルします。このプロセスにより、デバイスのスペースが節約され、アプリケーションの読み込み時間も短縮されます。
最後の言葉 👨💻
さて、この記事では、面接官が面接中におそらく尋ねる Spring Boot の質問と、自信を持って面接に合格するのに役立つ答えについて説明しました。あなたがその夢の仕事に就くことを願っています!
Java の面接中に尋ねられた質問から関連するヒントをいくつか学ぶこともできます。
幸運を祈ります! 🙂






![2021 年に Raspberry Pi Web サーバーをセットアップする方法 [ガイド]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)





