スプリングVSスプリングブート簡単な概観と比較


Springは、一般的にWebおよびJeEアプリケーション開発で広く使われているコアJavaフレームワークです.私たちが続ける前に、スプリング・ブートがスプリング・コアの上に構築された拡張モジュールであるのに対して、春がコア・フレームワークであることに注意する価値があります.だから、両方の共通の多くのものをもたらす一方、あなたは2つの間に微妙な違いを見つけるでしょう.

スプリングVSスプリングブート入門


非常に基本的なレベルでは、春は低レベルのフレームワークでは、多くのマニュアル作業を行う必要がありますが、春のブートは、プログラミングタスクを自動化するために、多くの定義済みの方法をもたらします.
それを言って、また、春がより多くをすることができるということを理解します、しかし、春のブートは特にウェブ開発とマイクロサービスに向けられます

春は何ですか。


春は、Javaエンタープライズアプリケーションを開発するための総合的インフラバックを提供します.ばねの2つの強力な特徴は、依存性注入(di)と制御の反転を含む.また、Java EEアプリケーションを開発するための非常に堅固な設定機構を提供します.
ここ数年で、春はモジュールの非常に広い生態系に変わりました、そして、それはアプリケーション開発のいろいろな地域で使われます.
生態系の人気モジュールのいくつかは、春のオーム、春のMVCテスト、春の雲、春のバッチ、春のセキュリティ、および大いに多くが含まれます.
エンタープライズJavaアプリケーションで動作する場合は、1つ以上のスプリングモジュールを選択して選択し、アプリケーションを実行して実行できます.
あなたが春に達成することができる主要なタスクのいくつかは以下の通りです
  • クラウドアプリケーション
  • バッチを作成するバッチタスクを自動化する
  • 非同期アプリケーションのビルド非ブロック化
  • セキュリティテストによるサーバ側の開発
  • イベント駆動アーキテクチャ実装
  • スケーラブルなマイクロサービス開発
  • そしてもっとたくさん.
  • 春は継続的に全体的な生態系でより多くのプロジェクトを追加し続けます.最近の追加のいくつかは、完全に機能するCLIアプリケーションをまとめるためにReadymade Jarsを提供するSpring Shellを含みます.もう一つの例はJavaScriptに基づいていて、単純なパイプラインとグラフのためにHTML 5 Visual Builderの使用を許すスプリングフローを含みます.
    Spring Frameworkは、ストリーミングテレビ、ストリーミングオーディオ、ショッピングアプリケーションや多くのようなストリーミングアプリケーションで大量に使用されます.Google、マイクロソフトとAlibabaのような多くのトップ組織は、春フレームワークの進歩のための定期的な貢献と支持です.
    絶対的な初心者については、春のブーツの枠組みを学ぶことができることを知っている春のブートフレームワークの次のSpring tutorials and Courses ほとんどのチュートリアルは春にイントロを提供し、スプリングブートを説明するために続けます.

    スプリングブートとは


    前述のように、春のブートは春の上に構築されたハイレベルのフレームワークであり、Webアプリケーションを構築するための最小限の設定が必要です.コアスプリングの重要な欠点の一つは、手動構成の多くが必要であり、それがスプリングブートの生成につながる結果である.
    あなたのWebアプリケーション開発のために作る選択肢に基づいて、春のブートは自動的に設定を生成し、それは多くの時間を節約できます.
    スプリングブートの主な特徴は以下の通りです
  • 完全に機能的に独立したスプリングアプリケーションの作成
  • 自動Tomcat、Jetty、さらにundertow戦争ファイルが含まれます.あなたは、あなたが望むものを決定します、春のブートは戦争ファイルと配備の世話をします
  • 開始のWebアプリケーションの定義済みの構成をもたらします.
  • 多くのサードパーティ製ライブラリと同様に春の生態系からのモジュールの自動設定
  • ボックスのメトリクス、健康チェックなどのレポートから.
  • マニュアルの設定は必要ありません.
  • 春のブートは、それが提供する独創的な設定でいくつかの柔軟性を奪うが、それはすべての時間を節約するものです.あなたがそのためにいないならば、あなたはコア/生の春に行くことができて、それをすべて自分ですることができます.

    依存性管理:スプリング対スプリングブート


    開発者が春と春のブートフレームワークの両方の依存関係を管理できる方法の基本的な例を見てみましょう.
    Webアプリケーションでは、春に必要な最小限の依存関係:
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.3.5</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.5</version>
    </dependency>
    
    Webアプリケーション用のスプリングブートに必要な最小限の依存関係:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.4.4</version>
    </dependency>
    
    線の数の違いの上に注意してください、そして、依存性とともにアプリケーション複雑さが増加するとき、違いは指数的になります.スプリングのブーツは、多くのスターターパックの助けを借りて簡単になります.最も人気のあるもののいくつかは以下の通りです
  • スプリングブートスターターTYMELEAF
  • スプリングブートスターターウェブ-組み込みコンテナでWebアプリケーションを作成
  • スプリングブートスタータAOP -スプリングブートアプリケーションにおけるアスペクト指向プログラミングのためのAOP
  • 春のブートスターターアルテミス-アパッチアルテミスでJMSメッセージング
  • Webサービススターターパック
  • 春の起動スターターメール-電子メールアプリケーションの機能を送信する
  • スプリングブートスターターデータJPA
  • あなたがスプリングブートを使用していないならば、コアスプリングの上のリストからのすべての依存関係はあなたに多くの構成線を書くようにします.

    Spring vs Spring Boot :セキュリティの依存設定


    以下の例を試してください.
    @Configuration
    @EnableWebSecurity
    public class CustomWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
    
        @Autowired
        public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
            auth.inMemoryAuthentication()
              .withUser("user1")
                .password(passwordEncoder()
                .encode("user1Pass"))
              .authorities("ROLE_USER");
        }
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests()
              .anyRequest().authenticated()
              .and()
              .httpBasic();
        }
    
        @Bean
        public PasswordEncoder passwordEncoder() {
            return new BCryptPasswordEncoder();
        }
    }
    
    スプリングブートを使用すると、セキュリティスターターパック-スプリングブートスターターセキュリティを含める必要があります.
    また、ユーザーインターフェイス上のアプリケーションの選択肢を作成し、アプリケーションの依存関係を自動的に生成する春の初期化子があります.
    以下の画像をチェックアウト-

    結論


    春はJavaで多くのことをするために起動されました、しかし、開発者は手動の設定オーバヘッドのためにそれをあまり好まなかったです.しかし、春のブートはすぐに開発者の関心を取り戻し、春の生態系は、現在楽しんで高さに成長を助けた.
    これは、春と春の春の比較の終わりまで私たちをもたらします.コメントを通して、これらのフレームワークで作業するあなたの意見を教えてください.