SpringFrameworkとSpringBootの歴史についてもっと知る



Learn More About Spring Framework



Springフレームワークは、間違いなく、Java開発者が使用する最も人気のあるアプリケーション開発フレームワークの1つです。現在、さまざまなサービスを提供する多数のモジュールで構成されています。モジュールコンテナ、アスペクト指向プログラミング(AOP)、セキュリティフレームワーク、データアクセスフレームワーク、Webアプリケーションフレームワーク、および横断的関心事をサポートするモジュールサポートを構築するためのクラスが含まれています。



Springフレームワークのすべてのコンポーネントは、依存性注入によって結合されます。依存性注入(制御の反転とも呼ばれます)により、疎結合のソフトウェアモジュールの設計とテストが容易になります。

SpringFrameworkは何年にもわたって成熟してきました。ほとんどすべてのJavaエンタープライズアプリケーションに必要な基本コンポーネントは、Springフレームワークにあります。しかし、必要なすべてのSpringコンポーネントを新しいアプリケーションに統合して構成するのは簡単ではありません。これには、gradle / mavenでの依存関係ライブラリの設定、およびxml、アノテーション、またはJavaコードを使用した必要なSpringBeanの構成が含まれます。 Spring開発者は、ここでの作業のほとんどが自動化できることを認識しており、SpringBootが登場しました。



Springフレームワークの歴史

出発点

2002年10月、ロッドジョンソンはExpert One-on-One J2EE Design andDevelopmentという本を書きました。 Wroxによって発行されたこの本は、当時のJavaエンタープライズアプリケーション開発を紹介し、JavaEEおよびEJBコンポーネントフレームワークの主要な欠陥のいくつかを指摘しています。この本では、彼は一般的なJavaクラスと依存性注入に基づくより単純なソリューションを紹介します。



この本では、EJBを使用せずに高品質でスケーラブルなオンライン座席予約システムを構築する方法を示しています。アプリケーションを構築するために、彼は30,000行を超えるインフラストラクチャコードを作成しました。 ApplicationContextやBeanFactoryなど、多くの再利用可能なJavaインターフェイスとクラスが含まれています。 Javaインターフェースは依存性注入の基本的な構成要素であるため、彼はこれらのクラスのルートパッケージをcom.interface21と名付けました。

1対1のJ2EEの設計と開発がヒットしています。この本で無料で提供されているインフラストラクチャコードのほとんどは、非常に再利用可能です。 15年経った今でも、この本とその原則は、高品質のJavaWebアプリケーションの構築に関連しています。

春が生まれました

この本が出版された直後、開発者のJuergenHoellerとYannCaroffは、インフラストラクチャコードに基づいてオープンソースプロジェクトを作成するようにRodJohnsonを説得しました。 Rod、Juergen、Yannは、2003年2月頃にプロジェクトの共同開発を開始しました。Yannは、新しいフレームワークの名前「Spring」を作成しました。 Rodによると、Springは従来のJ2EEの新しい始まりです。

2000年6月、Spring2.0はApache2.0ライセンスの下でリリースされました。 2004年3月、バージョン1.0がリリースされました。興味深いことに、1.0リリースの前は、Springは開発者によって広く採用されていました。 2004年8月、Rod Johnson、Juergen Hoeller、Keith Donald、Colin Sampaleanuは、春のコンサルティング、トレーニング、サポートに焦点を当てた企業インターフェース21を共同設立しました。

Yann Caroffはチームを早く去り、Rod Johnsonは2012年に去り、JuergenHoellerはまだSpring開発チームのアクティブメンバーです。

Springフレームワークの急速な成長

2004年の1.0リリースのリリース以来、Springフレームワークは急速に成長しました。 Spring 2.0は2006年10月にリリースされ、その時までにSpringは100万を超えるダウンロードを行っていました。 Spring 2.0には、XML構成を簡素化するための拡張可能なXML構成機能、Java 5のサポート、追加のIoCコンテナー拡張ポイント、および動的言語のサポートがあります。

Rodのリーダーシップの下でのInterface21プロジェクトは、2007年11月にSpringSourceに名前が変更されました。Spring2.5もリリースされています。 Spring 2.5の主な新機能には、Java 6 / Java EE 5のサポート、アノテーション構成のサポート、クラスパス内のコンポーネントの自動検出、およびOSGi互換バンドルが含まれます。

2007年、SpringSourceはベンチマークキャピタルから1ラウンドの資金調達(1,000万ドル)を受け取りました。

SpringSourceは、この期間中にHyperic、G2Oneなどの多くの企業を買収しました。 2009年8月、SpringSourceはVMWareに4億2000万ドルで買収されました。 SpringSourceは、クラウドPaaSプロバイダーであるCloudFoundryを数週間で買収しました。 2015年に、クラウドファクトリは非営利のクラウドファクトリに変わりました。

2009年12月、Spring3.0がリリースされました。 Spring 3.0には、モジュールシステムの再編成、Spring式言語のサポート、JavaベースのBean構成(JavaConfig)、組み込みデータベース(HSQL、H2、Derbyなど)のサポート、モデル検証/ RESTサポート、Javaなどの多くの重要な機能があります。 EE。待機する。

3.xシリーズの多くの小さなバージョンが2011年と2012年にリリースされました。2012年7月、ロッドジョンソンはチームを去りました。 2013年4月、VMwareとEMCは、GEキャピタルを通じてPivotalと呼ばれる合弁会社を設立しました。すべてのSpringアプリケーションはPivotalに移動されました。

2013年12月、Pivo​​talはSpring Framework4.0のリリースを発表しました。 Spring 4.0はSpringフレームワークの主要な進歩であり、Java 8の完全なサポート、より高いサードパーティライブラリの依存関係(groovy 1.8以降、ehcache 2.1以降、hibernate 3.6以降など)、Java EE 7のサポート、groovy DSL For Bean定義、WebSocketのサポート、および注入されたBeanの修飾子としての汎用タイプのサポート。

多くのSpringFramework4.xxシリーズのリリースが2014年から2017年の間にリリースされました。Spring4.3.7は2017年3月にリリースされました。Spring4.3.8は2017年4月にリリースされ、4.xシリーズの最後になりました。 Springフレームワークの次の継続のメジャーバージョンはバージョン5.0にあります。

SpringBootの履歴

2012年10月、MikeYoungstromはSpringjiraで、SpringフレームワークにコンテナーレスWebアプリケーションアーキテクチャーを必要とする機能リクエストを作成しました。彼は、メインコンテナのブートスプリングコンテナ内でのWebコンテナサービスの構成について話しました。これは、jiraリクエストからの抜粋です。

SpringのWebアプリケーションアーキテクチャは、Springコンポーネントと構成モデルを上から下まで活用するツールとリファレンスアーキテクチャを提供する場合、大幅に簡素化できると思います。単純なmain()メソッドによってガイドされるSpringコンテナーに、これらの一般的なWebコンテナーサービスの構成を埋め込み、統合します。

この要件により、2013年の初めに開始されたSpring Bootプロジェクトの開発が促進されました。2014年4月、Spring Boot1.0.0がリリースされました。それ以来、いくつかのSpringBootバージョンが出てきました。

Spring Boot 1.1(2014年6月) -テンプレートのサポート、gemfireのサポート、elasticsearchとapachesolrの自動構成が改善されました。

Spring Boot 1.2(2015年3月) -サーブレット3.1 / tomcat 8 / jetty 9、spring 4.1アップグレード、サポートバナー/ jms / SpringBootApplicationアノテーションにアップグレードします。

Spring Boot 1.3(2016年12月) -Spring 4.2アップグレード、キャッシングテクノロジー(ehcache、hazelcast、redis、infinispan)の自動構成用の新しいspring-boot-devtools、および完全に実行可能なjarサポート。

スプリングブーツ1.4(2017年1月) -Spring 4.3のアップグレード、couchbase / neo4jのサポート、起動の失敗とRestTemplateBuilderの分析。

スプリングブーツ1.5(2017年2月) -kafka / ldapのサポート、サードパーティライブラリのアップグレード、CRaSHサポートの非推奨、およびアプリケーションログレベルを動的に変更するためのアクチュエータロガーエンドポイント。

Spring Boot 2.0(2018年3月) -Java 8に基づいて、Java 9をサポートし、Quartzをサポートし、スケジューラーはセキュリティの自動構成を大幅に簡素化し、組み込みNettyをサポートします

Spring Bootのシンプルさにより、Java開発者はプロジェクトを迅速かつ大規模に採用できます。 Spring Bootは、間違いなく、JavaでRESTベースのマイクロサービスWebアプリケーションを開発するための最速の方法の1つです。

SpringIOとSpringBoot

2014年6月、Spring io1.0.0がリリースされました。 Spring ioは、アプリケーションライブラリ間の事前定義された依存関係のセットを表します。つまり、特定のSpring IOバージョンでプロジェクトを作成する場合、ライブラリのバージョンを定義する必要はありません。

SpringBootスタートアッププロジェクトでさえこのSpringIOの一部です。たとえば、spring io 1.0.0を使用している場合、ランチャープロジェクトの依存関係を追加するときに、Springのスタートアップバージョンを指定する必要はありません。自動的にSpringBoot1.1.1.RELEASEであると想定します。

概念的には、spring ioは、モジュールのベースレイヤーと実行レイヤーのドメイン固有ランタイム(DSR)で構成されます。ベースレイヤーは、コアSpringモジュールとサードパーティの依存関係の計画リストを表します。 Spring Bootは、SpringIOによって提供される実行レイヤーDSRの1つです。したがって、アプリケーションを構築する主な方法は2つあります。

Spring ioの有無にかかわらず、SpringBootを直接使用します。

必要なSpringモジュールにSpringIOを使用します。

新しいSpringスタートアップバージョンは通常、新しいSpringFrameworkバージョンがリリースされるたびにトリガーされることに注意してください。これにより、新しいバージョンのSpringBootがトリガーされます。

2015年11月、Spring io2.0.0がリリースされました。これにより、Spring Boot1.3を含む一連の更新された依存関係が提供されます。 2016年7月、Springioチームはアルファベット順のレイアウトを使用することを決定しました。 Spring IOは、この目的のために都市名を使用します。レターバージョンスキームでは、新しい名前は依存ライブラリのセカンダリおよびメジャーアップグレードを表します。

2016年9月、アテネはアルファベットにちなんで名付けられた都市の最初のSpringioプラットフォームバージョンをリリースしました。これには、Spring Boot1.4およびその他のサードパーティライブラリのアップグレードが含まれます。それ以来、アテネはいくつかのサービスバージョン(SR1、SR2、SR3、SR4)をリリースしました。

2017年3月、最新のSpring ioプラットフォーム(Brussels-SR1)がリリースされました。最新のSpringBootバージョン1.5.2を使用します。次のSpringioプラットフォームは、Cairoが導入する予定のSpring Boot2.0とSpringFramework5.0です。

春のタイムラインチャート

福祉ストライキ:

最後に、私が書いたSpring Bootコースをお勧めします。これは、Spring Bootをすばやく学び、SpirngBootテクノロジーを作業にすばやく適用できるようにするためです。このチュートリアルでは、主に実際の作業での使用シナリオを抽出し、コースとサンプルプロジェクトの形で示します。中堅および上級エンジニアが研究に申し込むのに適しています。興味のある友達はグループを追加できます:614478470