Spring Boot インタビューの質問 1

ここに画像の説明を挿入
Spring Boot はマイクロサービスに最適な Java フレームワークです。Spring Boot のエキスパートになることをお勧めします。

質問 1

Spring Boot、Spring MVC、Spring の違いは何ですか?
SpringFrame
SpringFramework の最も重要な機能は依存関係の挿入です。すべての SpringModule は、依存関係の注入または IOC 制御反転のいずれかです。

DI または IOC を適切に使用すると、疎結合アプリケーションを開発できます。疎結合アプリケーションの単体テストを簡単に実行できます。

SpringMVC
Spring MVC は、Web アプリケーションを開発するための分離されたアプローチを提供します。DispatcherServlet、MoudlAndView、ViewResolver などの単純な概念を使用すると、Web アプリケーションの開発が非常に簡単になります。

SpringBoot
Spring と SpringMVC の問題は、多数のパラメータを設定する必要があることです。



/WEB-INF/views/


.jsp

<mvc:resources Mapping="/webjars/**" location="/webjars/"/> Spring Boot を
コピーして、自動構成および起動プロジェクトでこの問題を解決します。
本番環境に対応したアプリケーションをより迅速に構築するために、Spring Boot にはいくつかの非機能的な機能が用意されています。

質問2

自動設定とは何ですか?
Spring と SpringMVC の問題は、設定するパラメーターが多数あることです。



/WEB-INF/views/.jsp <


mvc

:resources Mapping="/webjars/**" location="/webjars/"/>
コピー
より多くのインテリジェンスをもたらすことができますか? MVC JAR がアプリケーションに追加されたときに、一部の Bean を自動構成できますか?

Spring は、既存のアプリケーションの構成 ( CLASSPATH で利用可能なフレームワーク) を調べます。これに基づいて、Spring Boot はアプリケーションとフレームワークを構成するために必要な基本構成を提供します。これは自動構成です。

質問3

Spring Boot ステーターとは何ですか?
ランチャーは、独自のプログラムに配置できる依存関係記述子の便利なセットです。必要なすべての Spring および関連テクノロジを 1 か所で入手でき、サンプル コードを検索したり、依存する記述子の読み込みをコピーアンドペーストしたりする必要はありません。

たとえば、Spring と JPA を使用してデータベースにアクセスする場合、プロジェクトに spring-boot-starter-data-jpa 依存関係を含めるだけで、準備完了です。

質問4

ステーターについて詳しく説明する例を挙げていただけますか?

Stater - Spring Boot Stater Web の例を考えてみましょう。

Web アプリケーションまたは REST サービスを公開するアプリケーションを開発する場合。Spring Boot Start Web が推奨されます。Spring Initializr を使用して Spring Boot Start Web クイック プロジェクトを作成しましょう。

Spring Boot Start Web の依存関係

org.springframework.boot spring-boot-starter-web コピー 以下のスクリーンショットは、アプリケーションに追加されたさまざまな依存関係です。

ここに画像の説明を挿入

依存関係は次のように分類できます。

Spring - コア、Bean、コンテキスト、AOP

Web MVC - (Spring MVC)

Jackson - JSON バインディング用

検証 - Hibernate、検証 API

組み込みサーブレットコンテナ - Tomcat

ロギング - logback、slf4j

従来の Web アプリケーションはすべて、これらの依存関係をすべて使用します。Spring Boot Starter Web には、これらの依存関係があらかじめパッケージ化されています。

開発者として、これらの依存関係とその互換性のあるバージョンについて心配する必要はなくなりました。

質問5

Spring Boot では他にどのようなスターター プロジェクト オプションが提供されますか?
Spring Boot は、特定の種類のアプリケーションを開発するための一般的な依存関係を含む他のスターター プロジェクトも提供します。

spring-boot-starter-web-services - SOAP Web サービス

spring-boot-starter-web - Web および RESTful アプリケーション

spring-boot-starter-test - 単体テストと統合テスト

spring-boot-starter-jdbc - 従来の JDBC

spring-boot-starter-hateoas - HATEOAS 機能をサービスに追加します

spring-boot-starter-security - SpringSecurity による認証と認可

spring-boot-starter-data-jpa - Hibeernate を使用した Spring Data JPA

spring-boot-starter-data-rest - Spring Data REST を使用して単純な REST サービスを公開する

質問6

Spring はどのようにして実稼働対応のアプリケーションを迅速に作成できるのでしょうか?
Spring Boot は、本番環境に対応した高速なアプリケーションに関するものです。この目的を達成するために、キャッシュ、ロギング、監視、組み込みサーバーなど、すぐに使用できる機能以外の機能が提供されます。

spring-boot-starter-actuator - アプリケーションの監視やトレースなどの高度な機能を使用します

spring-boot-starter-undertow、spring-boot-starter-jetty、spring-boot-starter-tomcat - 特定の組み込みサーブレット コンテナを選択します

spring-boot-starter-logging - logback を使用したロギング

spring-boot-starter-cache - Spring Framework のキャッシュ サポートを有効にします

Spring2 および Spring5 に必要な Java の最小バージョンは何ですか?

Spring Boot 2.0 には Java8 以降が必要です。Java6 と Java7 はサポートされなくなりました。

推奨読書:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M1-Release-Notes

質問7

Spring Boot プロジェクトを作成する最も簡単な方法は何ですか?
Spring Initializr は、Spring Boot プロジェクトを開始するための優れたツールです。

上の図に示すように、いくつかの手順を実行する必要があります。Spring
Initializr にログインし、次のように選択します。
グループとして com.in28 minutes.springboot を選択
し、コンポーネントとして studet-services を選択し、
次の依存関係を選択して
Web
Actuator
DevTools
GenerateProject を生成して
、プロジェクトを Eclipse にインポートします。ファイル - インポート - 既存の Maven プロジェクト
質問 8

Spring Initializr は Spring Boot プロジェクトを作成する唯一の方法ですか?
いいえ。

Spring Initiatlizr を使用すると、Spring Boot プロジェクトを簡単に作成できますが、Maven プロジェクトをセットアップして正しい依存関係を追加することによってプロジェクトを開始することもできます。

春のコースでは、2 つのアプローチを使用してプロジェクトを作成します。

最初のメソッドは start.spring.io です。
もう 1 つの方法は、「Basic Web Application」というタイトルのプロジェクトで手動で設定することです。

Maven プロジェクトを手動でセットアップする

以下にいくつかの重要な手順を示します。

Eclipse で、[ファイル] - [新しい Maven プロジェクト] を使用して新しいプロジェクトを作成し
、依存関係を追加します。
Mavenプラグインを追加します。
Spring Boot アプリケーション クラスを追加します。
これで準備は完了です!

質問9

なぜ spring-boot-maven-plugin が必要なのでしょうか?
spring-boot-maven-plugin は、jar などのアプリケーションをパッケージ化または実行するためのいくつかのコマンドを提供します。

spring-boot:run は Spring Booty アプリケーションを実行します。
spring-boot:repackage は、jar または war パッケージを再パッケージして実行可能にします。
spring-boot:start および spring-boot:stop は、Spring Boot アプリケーションのライフサイクルを管理します (統合テスト用)。
spring-boot:build-info は、エグゼキューターが使用できるビルド情報を生成します。
質問10

SpringBoot を使用してアプリケーションを自動的にリロードするにはどうすればよいですか?
Spring Boot 開発ツールを使用します。

Spring Boot 開発ツールをプロジェクトに追加するのは簡単です。

Spring Boot プロジェクト pom.xml に次の依存関係を追加します。

org.springframework.boot spring-boot-devtools runtime アプリケーションをコピーして再起動すれば問題ありません。

また、ページを自動ロードしたい場合は、FiveReload を参照してください。

http://www.logicbig.com/tutorials/spring-framework/spring-boot/boot-live-reload/
テストしたところ、LiveReload の脆弱性が見つかりました。テスト中に発見された場合は、お知らせください。

質問 11

組み込みサーバーとは何ですか? なぜ組み込みサーバーを使用する必要があるのでしょうか?
仮想マシンにアプリケーションをデプロイするには何が必要かを考えてください。

ステップ 1: Java をインストールする

パート 2: Web サーバーまたはアプリケーション サーバー (Tomat/Wbesphere/Weblogic など) をインストールする

パート 3: アプリケーション war パッケージをデプロイする

これらの手順を簡略化したい場合は、どうすればよいでしょうか?

サーバーをアプリケーションの一部にする方法を考えてみましょう。

Java がインストールされた仮想マシンのみが必要で、その上にアプリケーションを直接デプロイできます。
素晴らしいと思いませんか?

この考え方が組み込みサーバーの起源です。

配置可能なアプリケーションを作成するときは、配置可能なサーバーにサーバー (たとえば、tomcat) を埋め込みます。

たとえば、Spring Boot アプリケーションの場合、Embedded Tomcat を含むアプリケーション jar を生成できます。その後、通常の Java アプリケーションと同じように Web アプリケーションを実行できます。

組み込みサーバーは、実行可能ユニットにサーバーのバイナリ (たとえば、tomcat.jar) が含まれている場所です。

質問12

Spring Boot に一般的な JS コードを追加するにはどうすればよいですか?
ソース フォルダーの下に、static という名前のフォルダーを作成します。次に、静的コンテンツをそこに配置できます。

たとえば、myapp.js へのパスは resource\static\js\myapp.js です。

jspでの使い方を参考にしてください


复制
错误:HAL ブラウザで不正エラーが発生しました - このリソースにアクセスするには完全な認証が必要です。

このエラーを修正するにはどうすればよいですか?

{ "timestamp": 1488656019562, "status": 401, "error": "Unauthorized", "message": "このリソースにアクセスするには完全な認証が必要です。", "path": "/beans" } 2 つのメソッドをコピーします。







方法 1: セキュリティ検証
application.propertiesをオフにする

Management.security.enabled: FALSE
レプリケーション
方法 2: ログ内でパスワードを検索し、それをリクエスト ヘッダーに渡します。
質問 13

春のデートとは何ですか?
から: //projects.spring.io/spring-data/

Spring Data の使命は、基盤となるデータ ストレージの特異性を確保しながら、使い慣れた一貫性のある Spring ベースのデータ アクセス プログラミング モデルを提供することです。これにより、データ アクセス テクノロジ、リレーショナルおよび非リレーショナル データベース、マップ リデュース フレームワーク、およびクラウド ベースのデータ サービスを簡単に使用できるようになります。

これを少し簡単にするために、Spring Data は基礎となるデータ ソースによって制限されない抽象インターフェイスを提供します。

ここに例があります

Interface TodoRepository extends CrudRepository<Todo, Long> { Copy多くのコードを記述せずに、ToDo 項目の挿入、更新、削除、取得を行うための単純なライブラリを定義できます。

おすすめ

転載: blog.csdn.net/m0_54861649/article/details/126665787