REST Webサービスを開発するために、Springの代わりにSpring Bootを使用することを勧めた多くの人々がいます。この2つの違いは何ですか?
要するに
詳細はこちらをご覧ください http://projects.spring.io/spring-boot/
基本的に、Spring Bootは、Springアプリケーションのインスタンスです。
Spring Bootは、迅速なアプリケーション開発プラットフォームです。 Springのさまざまなコンポーネントを使用しますが、埋め込みTomcat(または突堤)サーバーを含む実行可能なjarとしてアプリケーションをパッケージ化する機能など、追加の機能があります。さらに、Spring Bootには、多くの自動構成(意見のある部分)が含まれており、利用可能なクラス/ Beanに基づいて作成するものを選択します。
Springを使用する場合、Spring Bootなしでそれを行う理由は考えられないという彼らの感情をエコーします。
残念ながら、これはSpringブートでの個人的な不満からですが、実際の定量化されたリストはまだありません。違いは明示的に概説されています。 「...意見のある意見...」というごみ文のような資格があります。
is明らかなのは、SpringBootが暗黙的にSpringアノテーションのグループを独自のアノテーションセットにラップしていることです。さらに難読化し、特定のSpringBootアノテーションが表すものをメモリにコミットしなければならないSpringBootで開始する人の必要性を作ります。
したがって、私の返信は、元の質問に対する定量化可能なメリットがありません。これは、SpringBootの著者の質問に類似しています。 Spring IMOの背後にある人々は意図的に難読化に着手しますが、これは彼らのJavaDocとAPI(私が燃えていると思うならSpringBatch APIを例として参照してください)の鈍さを反映しており、オープンソースの精神の価値を疑問に思っています。
SpringBootを把握するための私の探求は続きます。
Spring BootはSpring Frameworkプロジェクトの見解です。SpringBoot Documentationから取得した1つのプログラムを通して分析しましょう。
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}
これは非常に基本的なREST APIであり、Spring-boot-starter-web
あなたのPOM.xml
同様に。スターターWeb依存関係が追加されているため、注釈@EnableAutoConfiguration
は、Webアプリケーションを開発する必要があると推測し、それに応じてSpringをセットアップします。
Spring Bootの自動構成は、追加したjar依存関係に基づいてSpringアプリケーションを自動的に構成しようとします。たとえば、HSQLDB
がclasspath
上にあり、データベース接続Beanを手動で構成していない場合、Spring Bootはインメモリデータベースを自動構成します。
それはMavenのように考えられています。 Mavenは、プロジェクト構造を作成します。これは、src/main/Java
フォルダーまたはリソースフォルダー。
スプリングブートは、開発の高速化に役立ちます。それはあなたが非常に速く行くのを助ける多くのスタータープロジェクトを持っています。また、組み込みサーバー、セキュリティ、メトリック、ヘルスチェックなどの多くの非機能機能も含まれています。要するに、最小限のコードの侵入で、スプリングベースのアプリケーション開発が容易になります(構成ファイルが少なく、アノテーションが少なくなります)。