Back to Javatutorial

SpringBootǰ

docs/Spring全家桶/SpringBoot/SpringBoot的前世今生.md

1.0.07.8 KB
Original Source

SpringBootǰ

Spring Boot 2.0 Ƴּһѧϰ Spring Boot ȣ͵Ҹ˵IJ͵ķӾͿԸܵҶѧϰ Spring Boot 飬ôôѧϰ Spring Boot ֮ʱԼҲ˼ Spring Boot ıʲôSpring ҵǻʲôĿǴ Spring Boot? ͳҵʹ Spring Boot Ǵʲô?

Щ⣬һ˽ Spring Boot ʲô?

Spring ʷ

˵ Spring Boot Dzò˽һ Spring ҵΪ Spring Boot Դ Spirng 壬 Spring Boot ĵ Sping ܵķչϢϢء

ʱص2002꣬ʱ Java EE EJB ʱ򣬺֪ܶ˾Dzô˼ĿʱһСΪ EJB ̫ӷףеĿҪʹ EJB ִͿܣӦûһָõķ⡣

Ϊ֤뷨ȷģ200210дһ顶 Expert One-on-One J2EE ˵ʱ Java ҵӦó򿪷ָ Java EE EJB дڵһЩҪȱݡⱾУһͨ Java עĸ򵥵Ľ

Уչʾڲʹ EJB ¹չλԤϵͳΪ˹Ӧóд˳ 30,000 еĻṹ룬ĿеĸΪ com.interface21׿ԴΪ interface21Ҳ Spring ǰ

˭أǴ Rod Johnson ͼ, Rod Johnson Ϥѧ˼ѧλͬʱѧλ˳Ծڻص֮ǰѧIJʿѧλ Rod Johnson Ѿ뿪 Spring ΪһʹͶˣͬʱҲǶ˾Ķ£۷塣

Ȿ鷢һһ J2EE ƺͿһڶ졣ⱾṩĴ󲿷ֻܹ붼Ǹ߶ȿõġ 2003 Rod Johnson ͬڴ˿ܵĻϿһȫµĿΪ Spring , Rod Johnson Spring Ǵͳ J2EE µĿʼ Spring չ쳵

  • 2004 03 £1.0 淢
  • 2006 10 £2.0 淢
  • 2007 11 ¸Ϊ SpringSourceͬʱ Spring 2.5
  • 2009 12 £Spring 3.0
  • 2013 12 £Pivotal Spring 4.0
  • 2017 09 £Spring 5.0

Spring Boot ĵ

ʹ Spring пĸ˺ҵԽԽ࣬Spring ҲһһСܱһȫĿԴSpring ı߽粻ϵĽ䣬˺ Spring κˣĿԴм Spring Ӧ֧֣ Spring ֱ֮ҲһЩ⡣

Spring ÿһԴҪһЩãǿĿԽԽӴҪɺܶ࿪Դ˺ʹ Spirng ĿҪܶļ̫÷dz⣬ó˺ Spring Ϊõ

Spring ƺҲʶЩ⣬ôһԽЩ⣬ʱ΢ĸҲ𣬿ٿ΢СӦñøΪȣSpring պôôһϣ 2013 ʼ Spring Boot Ŀз20144£Spring Boot 1.0.0

Spring Boot ֮ܵԴijע½һЩ˺ҵʹ Spring BootѸϲԴֱ2016꣬ڹ Spring Boot űʹڼܶо Spring Boot Ŀд˴ Spring Boot £ͬʱһЩ˾ҵڲСģʹãʹþ˳2016굽2018꣬ʹ Spring Boot ҵ͸˿ԽԽ࣬Ǵ Spring Boot ؼֵİٶָͿԿ

ͼΪ2014굽2018 Spring Boot İٶָԿ Spring Boot 2.0 Ƴ߷塣

Ȼ Spring Boot Ϊȡ Spring ,Spring Boot Spring ΪǸ׵ʹ Spring Spring Boot гӦSpring ٷҲdz Spring Boot ĺչѾ Spring Boot Ϊ˾Ŀƹ㣬ŵ˹ϵһλã˺ Spring Boot ijչҲá

springspringbootĻ

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".

We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration.

֮ڸǣspringboot԰ǿٹӦ

ֻҪһ@SpringBootApplication עӦڣɱʶΪһspringbootӦ

ңspringboot̳˴ĵ⣬ǽȫҪãͿԽӦôΪspringbootܱѾú˴Ĭá

Features

  • Create stand-alone Spring applications
  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
  • Provide opinionated 'starter' dependencies to simplify your build configuration
  • Automatically configure Spring and 3rd party libraries whenever possible
  • Provide production-ready features such as metrics, health checks, and externalized configuration
  • Absolutely no code generation and no requirement for XML configuration

ٷspringbootԵ

1һspringӦãڶ΢񣬻һwebӦ

2õtomcatҲҪspringӦôwarֻҪjarв𼴿ɡ

3ṩstarterӼspringboot̬еã統ʹspringwebʱDzҪӶspringmvcصmavenֱspring-boot-starter-webͿˣstarterԶصҰ汾ţؼ򻯺Żmaven

4Զװspring͵⣬ҪָͨעļԶװ䣬һһЩǻԼԶװƣ԰ǽʡĶãҲԶװⲿjarṩspringbeaná

5ṩصԣءָ㡢ȹܣspringbootṩǿ̬ﲻspringbootԼҲһЩⲿ̬

6ڴɣҲҪxmlļ֤springbootĿȣԼü򻯵ļ׷ǽҪapplication.propertiesлòҲspringbootҵ̬ɵĶclassļ

SpringĹϵ

SpringFrameworkʲô⣿

SpringJavaҵ棨Java Enterprise EditionJEEҲJ2EEƷ迪EnterpriseJavaBeanEJBSpringΪҵJavaṩһԼ򵥵ķͨע̣ü򵥵JavaPlain Old Java ObjectPOJOʵEJBĹܡ

1.ʹSpringIOC,֮ϵSpring,֮,ǸרעӦ߼

2.ṩڶ,,WSȡ

3.ܺõ֧AOP,̡

4.Ŀṩ˺ܺõļ֧,Hibernate,Struts2,JPA

5.Spring DIƽҵ滻ĸԡ

6.Springڵ,Ⱦ͡

7.Springĸ߶ȿɿ,ǿSpring,߿ѡSpringֻȫ

SpringFrameworkûнʲô⣿

ȻSpringģȴġһʼSpringXMLãǺܶXMLáSpring 2.5˻עɨ裬˴ӦóʽXMLáSpring 3.0˻JavaãһͰȫĿع÷ʽԴXML

Щö˿ʱġΪ˼Springúͽҵ֮Ҫ˼άлԱдüռ˱дӦó߼ʱ䡣пһSpringʵãͬʱҪĻرҲ١

֮⣬ĿҲһʱ顣ڻʱҪҪЩ꣬һҪ֮ϵ꣬һѡİ汾֮IJͻ谭ĿĿȡ

SpringBootSpringȱ

SpringBootSpringȱеĸƺŻԼõ˼룬ÿԱ߼ҵ֮˼άлȫĵͶ뵽߼ҵĴдУӶ˿Чʣһ̶Ŀڡ

ʹSpringܽпĹУҪúܶSpringܰspring-corespring-beanspring-contextȣЩͨظӵģҪܶʹüظã翪ע⡢־ȡSpring BootЩҪIJṩĬãȻЩĬǿ԰޸ĵģٴSpringӦ

SpringMVCĹϵ

Spring BootSpring BootʹͿʼSpringӦóס ˺ܶ롣 Ļ˺ܶิԣ˿ԱԿֲɿSpringӦó

Spring MVCSpring MVCڹWebӦóWeb MVCܡ ڸֹܵļ һHTTPWebӦó򿪷ܡ

Spring BootSpring MVCڲͬĿĶڡ Spring BootSpring MVC֮Ҫ

Spring BootSpring MVC
Spring BootʹúĬֵSpringӦóSpring MVCSpring»ģͼWebܡ
ṩĬSpringֵ֧ĿܡṩڹWebӦóļ͹ܡ
ֶáҪֶйá
ҪDZġ
룬װһԪСֱָÿ
˿ʱ䲢ʡʵͬĿҪʱ䡣

΢SpringCloudĹϵ

Spring BootSpringijԱһȫµĿܣĿǾܼ򵥺ͿٵĿSpringӦó򣬼áΪ߿ݵʹSpringؿṩ˱΢ĿܣֻΪ΢ܵʹҲṩ˺ܺõĽּܡ

ͼߵĻspringbootڹӦãҲdz˵΢

springcloudڷҲǴЭ΢springbootӦó

springcloudаڶصAPISpringcloud GatewayConfig Serever·Circuit BreakerעService RegisttySleuth

ʹSpringboot8ԭ

Ŀ

Spring Boot Spring ̬ϵͳ˺ܶ͹ִĬá ڿԱòͶ뿪

磬Spring MVC ͨ XML bean Զ servlet ʵ֡ ʹ Spring Bootһ򵥡 ԲҪ XML á

һнȻ

Spring Boot Starters ǰǵһЩԶõ Maven ңЩΪ Spring Boot Ӧóṩܡ Ҫݿӣ һ Ϣͨ͵ʼ Spring Boot һС

ڼе Spring ģ飬һΪݡ һЩҲͨǵģṩ Spring ֧֡ ûЩΪԱòά XML á Ӧʹ Spring Boot һԭ

Ƕʽ

Spring Boot ΪǶʽ TomcatJetty Undertow ṩ伴õ֧֡ ԱͲصڴͳӦ÷в Web Ӧó ͨʵԽһַ ʵյõһκ JAR һе JAR ļ ʱJAR 㹻ĿΪӦó

ǶʽȤʱ Spring Boot Ӧó JAR תΪ WARDz𵽴ͳ

IDE Spring Boot ֧

Ҫ IDE ṩ Spring Boot ֧֡ 磬IntelliJ IDEA Ultimate Ϊ Spring Boot Ŀṩ˳ɫĴɺ͵ܡ֮⣬VSCode Eclipse Ҳṩ˷ḻĹ֧֡

ù

Spring Boot ṩԣءָͿ伴õע ЩԣԱԱá 磬ִ˵ȹʹӦó״̬سΪܡ 磬

Prometheus ĹռӦóָ

Kubernetes Openshift ʹþԺͻԾȽ˵㡣

ֻԻͨ /actuator/logging ˵㼴ɸ־¼

⣬ԱʹԼԶ彡˵Щִ˵㡣

伴õ JUnit ֧

Ĭ£ Spring Boot Ŀ JUnit 5 ⣬Spring Boot ṩ@SpringBootTest עҪʱʼġ ԿԱֻҪд DzٵIJĸ spring ġ

磬ԶɵIJԽǷȷء

@SpringBootTest
class SpringBootDerbyDatabaseApplicationTests {

     @
     void contextLoads() {
     }

}

Spring Profiles

Spring Profiles spring Boot һǿԣڸӦóеIJͬ ʹļضû ضʹòͬʱܻó

@Profile(value = {"prod","uat"})
class RabbitMQConfig {

// 

}

ĴУĽھ prod uat ΪļĻС

ִͲѡ

ÿṩ˶ַʽӦó ֮ǰ˵Ӧó JAR WAR ļ ͨһЩúͲԴ伴õĸ docker

ֹͣ Spring Boot Ӧódz򵥡 ⣬ͨIJ轫Щ JAR ļΪ linux JAR ļΪ FAT jarǰӦóص ʹò̲ôӡ ʵϣЩκװ Java 8 ߰汾ĻС

ο

https://spring.io/

https://pdai.tech/md/spring/springboot/springboot-x-overview.html

https://springhow.com/why-use-spring-boot/

https://dzone.com/articles/why-springboot

https://scand.com/company/blog/pros-and-cons-of-using-spring-boot/

https://cloud.tencent.com/developer/article/1620255

https://www.yiibai.com/spring-boot/spring-vs-spring-boot-vs-spring-mvc.html