The Spring framework can be said to be one of the most popular application development frameworks used by Java developers. It is currently comprised of a large number of modules providing a range of services. Includes module containers, aspect-oriented programming (AOP) for building crosscutting concerns, security framework, data access framework, WEB application framework, and classes to provide support for module testing. All components of the Spring framework are glued together by dependency injection. Dependency Injection (also known as control inversion) makes it easier to design and test software modules that are loosely coupled.
The Spring framework has grown sufficiently mature over the years. Almost all of the basic components that Java enterprise applications need to use can be found in the Spring framework. But it's not easy to integrate and configure all the required Spring components in a new application. This includes setting up dependent libraries in Gradle/maven, using XML, annotations, or Java code to configure the required Spring beans. Spring developers realize that most of the work here can be automated, and spring Boot appears!
History of the Spring framework
Starting point
In October 2002, Rod Johnson wrote a book titled The Design and Development of the Expert one-on-one EE. This book, published by Wrox, introduces the development of Java enterprise applications at the time, and points out some of the major flaws in Java EE and EJB component frameworks. In this book, he proposes a simpler solution based on common Java classes and dependency injection.
In the book, he shows how to build a high-quality, scalable online seat reservation system without using EJBS. To build the application, he wrote more than 30,000 lines of infrastructure code. Contains a number of reusable Java interfaces and classes, such as ApplicationContext and Beanfactory. Because the Java interface is a basic building block of dependency injection, he names the root package of these classes as COM.INTERFACE21.
One-on-one design and development of the Java EE a gun and red. Most of the infrastructure code that this book provides for free is highly reusable. Even after 15 years, the book and its principles are still relevant to building high-quality Java Web applications.
Spring Birth
Shortly after the book was released, developers Juergen Hoeller and Yann Caroff persuaded Rod Johnson to create an open source project based on infrastructure code. Rod,juergen and Yann began collaborating on the project around February 2003. Yann created the name "Spring" for the new framework. According to Rod, Spring is a new beginning of traditional Java EE.
200 years in June, Spring 2.0 was released under the Apache 2.0 license. Released in March 2004, version 1.0. Interestingly, spring was widely used by developers before it was released in 1.0. In August 2004, Rod Johnson,juergen Hoeller,keith Donald and Colin Sampaleanu co-founded a company focused on Spring Consulting, training and support INTERFACE21.
Yann Caroff left the team in the early days, and Rod Johnson left in 2012, Juergen Hoeller is still an active member of the Spring development team.
Rapid growth of the Spring framework
The Spring framework has grown rapidly since the release of the 1.0 release in 2004. Spring 2.0 was released in October 2006, and by that time spring's download volume exceeded 1 million. Spring 2.0 has an extensible XML configuration feature that simplifies XML configuration, supports Java 5, additional IoC container extension points, and supports dynamic languages.
The management of the INTERFACE21 project under Rod led was renamed SpringSource in November 2007. Spring 2.5 was also released. Key new features in Spring 2.5 include support for Java 6/java EE 5, support for annotation configuration, automatic detection of components in classpath and compatibility with OSGi bundles.
In 2007, SpringSource received a round of financing from Benchmark Capital (US $10 million). During this period, SpringSource acquired a number of companies, such as Hyperic,g2one. In August 2009, SpringSource was acquired by VMWare for $420 million. SpringSource acquired the Cloud generation factory in a few weeks, a cloud PaaS provider. In 2015, the Cloud generation factory was transformed into a non-profit cloud foundry.
Spring 3.0 was released in December 2009. Spring 3.0 has many important features, such as the Reorganization module system, support for the Spring expression language, Java-based bean configuration (javaconfig), support for embedded databases (such as HSQL,H2 and Derby), model validation/REST support, and Java EE support.
A small version of many 3.x series was released in 2011 and 2012. In July 2012, Rod Johnson left the team. In April 2013, VMware and EMC created a joint venture named Pivotal through GE investment. All of the Spring application projects have been transferred to Pivotal.
In December 2013, Pivotal announced the release of Spring Framework 4.0. Spring 4.0 is a major step forward in the spring framework, with full support for Java 8, higher third-party library dependencies (groovy 1.8+,ehcache 2.1+,hibernate 3.6+, etc.), Java EE 7 support, groovy DSL The for Bean definition, support for websockets, and support for generic types as qualifiers for injected beans.
Many Spring framework 4.xx series versions were released from 2014 to 2017. Spring 4.3.7 was released in March 2017. Spring 4.3.8 was released in April 2017 and became the last of the 4.x series. The major version of the Spring framework's next continuation is in version 5.0.
The history of Spring Boot
In October 2012, Mike Youngstrom created a feature request in spring Jira that required support for the container-free WEB application Architecture in the Spring framework. He talked about configuring the Web container service within the main container boot spring container. Here is an excerpt from the JIRA request:
I think spring's WEB application architecture can be greatly simplified if it provides tools and reference architectures that take advantage of spring components and configuration models from top to bottom. Embed and unify the configuration of these common web container services within a simple main () method-guided Spring container.
This requirement prompted the development of the Spring Boot project, which began in early 2013. April 2014, Spring Boot 1.0.0 released. Since then, some Spring Boot versions have come out:
Spring Boot 1.1 (June 2014)-Improved template support, GemFire support, Elasticsearch and Apache SOLR automatic configuration.
Spring Boot 1.2 (March 2015)-upgrade to servlet 3.1/tomcat 8/jetty 9,spring 4.1 upgrade, support Banner/jms/springbootapplication note Solution.
Spring Boot 1.3 (December 2016)-Spring 4.2 upgrade, new Spring-boot-devtools, automatic configuration for cache technology (Ehcache,hazelcast,redis and Infinispan) and full Executable jar support.
Spring Boot 1.4 (January 2017)-Spring 4.3 upgrades, supports couchbase/neo4j, analyzes boot failures and Resttemplatebuilder.
Spring Boot 1.5 (February 2017)-supports KAFKA/LDAP, third-party library upgrades, deprecated CRaSH support, and executor logger endpoints to dynamically modify the application log level.
Spring Boot 2.0 (March 2018)-Based on Java 8, supports Java 9, supports Quartz, scheduler greatly simplifies security auto configuration, supports embedded Netty
Spring Boot Simplicity enables Java developers to adopt the project quickly and massively. Spring Boot is one of the quickest ways to develop a REST-based microservices Web application in Java.
Spring IO and Spring Boot
June 2014, Spring io 1.0.0 released. Spring IO represents a set of predefined dependencies between the application libraries. This means that if you create a project with a specific Spring IO version, you no longer need to define the version of the library. Even the spring boot startup Project is part of this spring IO. For example, if you are using spring IO 1.0.0, you do not need to specify a spring startup version when you add a dependency on the initiator project. It will automatically assume that it is spring boot 1.1.1.RELEASE.
Conceptually, spring IO consists of the base layer of the module and the runtime (DSR) that executes the layer domain. The base layer represents a planning checklist for core spring modules and third-party dependencies. Spring Boot is one of the execution layer DSR provided by spring IO. So now there are two main ways to build an application,
Use spring Boot directly or without using spring IO.
Use spring IO for the required spring modules.
Note that a new spring startup version is typically triggered whenever a new spring framework version is released. This in turn raises the new spring Boot version.
November 2015, Spring io 2.0.0 released. This provides a set of updated dependencies, including Spring Boot 1.3. In July 2016, the Spring IO team decided to use the alphabetically formatted scheme. Spring IO uses the city name for this purpose. In the alphabetic version scenario, the new name represents a secondary and major upgrade of the dependent library.
In September 2016, Athens released the first version of the Spring IO platform, named after the city in alphabetical order. It contains Spring Boot 1.4 and other third-party library upgrades. Since then, Athens has released several service editions (SR1,SR2,SR3 and SR4).
March 2017, the latest Spring IO platform (BRUSSELS-SR1) was released. It uses the latest Spring Boot version of 1.5.2. The next spring IO platform is the Spring Boot 2.0 and Spring Framework 5.0 that Cairo plans to launch.
Spring Timeline Chart
Understand the spring framework and Spring Boot history