web-dev-qa-db-ja.com

SpringとSpring Bootの違い

REST Webサービスを開発するために、Springの代わりにSpring Bootを使用することを勧めた多くの人々がいます。この2つの違いは何ですか?

21
Cheps

要するに

  1. Spring Bootを使用すると、多くの構成コードや定型コードを記述する必要が少なくなります。
  2. Spring Platformとサードパーティのライブラリに関する見解があり、最小限の労力で始めることができます。
  3. Tomcat/Jetty/Undertowが組み込まれたスタンドアロンアプリケーションを簡単に作成できます。
  4. メトリックス、ヘルスチェック、外部化された構成を提供します。

詳細はこちらをご覧ください http://projects.spring.io/spring-boot/

16
medvedev1088

基本的に、Spring Bootは、Springアプリケーションのインスタンスです。

Spring Bootは、迅速なアプリケーション開発プラットフォームです。 Springのさまざまなコンポーネントを使用しますが、埋め込みTomcat(または突堤)サーバーを含む実行可能なjarとしてアプリケーションをパッケージ化する機能など、追加の機能があります。さらに、Spring Bootには、多くの自動構成(意見のある部分)が含まれており、利用可能なクラス/ Beanに基づいて作成するものを選択します。

Springを使用する場合、Spring Bootなしでそれを行う理由は考えられないという彼らの感情をエコーし​​ます。

8
digitaljoel

残念ながら、これはSpringブートでの個人的な不満からですが、実際の定量化されたリストはまだありません。違いは明示的に概説されています。 「...意見のある意見...」というごみ文のような資格があります。

is明らかなのは、SpringBootが暗黙的にSpringアノテーションのグループを独自のアノテーションセットにラップしていることです。さらに難読化し、特定のSpringBootアノテーションが表すものをメモリにコミットしなければならないSpringBootで開始する人の必要性を作ります。

したがって、私の返信は、元の質問に対する定量化可能なメリットがありません。これは、SpringBootの著者の質問に類似しています。 Spring IMOの背後にある人々は意図的に難読化に着手しますが、これは彼らのJavaDocとAPI(私が燃えていると思うならSpringBatch APIを例として参照してください)の鈍さを反映しており、オープンソースの精神の価値を疑問に思っています。

SpringBootを把握するための私の探求は続きます。

4
Beezer

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アプリケーションを自動的に構成しようとします。たとえば、HSQLDBclasspath上にあり、データベース接続Beanを手動で構成していない場合、Spring Bootはインメモリデータベースを自動構成します。

それはMavenのように考えられています。 Mavenは、プロジェクト構造を作成します。これは、src/main/Javaフォルダーまたはリソースフォルダー。

スプリングブートは、開発の高速化に役立ちます。それはあなたが非常に速く行くのを助ける多くのスタータープロジェクトを持っています。また、組み込みサーバー、セキュリティ、メトリック、ヘルスチェックなどの多くの非機能機能も含まれています。要するに、最小限のコードの侵入で、スプリングベースのアプリケーション開発が容易になります(構成ファイルが少なく、アノテーションが少なくなります)。

リファレンス: https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-documentation-about

1
bpjoshi