docs/Spring全家桶/SpringBoot/SpringBoot的前世今生.md
Spring Boot 2.0 Ƴּһѧϰ Spring Boot ȣ͵Ҹ˵IJ͵ķӾͿԸܵҶѧϰ Spring Boot 飬ôôѧϰ Spring Boot ֮ʱԼҲ˼ Spring Boot ıʲôSpring ҵǻʲôĿǴ Spring Boot? ͳҵʹ Spring Boot Ǵʲô?
Щ⣬һ˽ Spring Boot ʲô?
˵ 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 չ쳵
ʹ 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
ٷ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ļ
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ֻȫ
ȻSpringģȴġһʼSpringXMLãǺܶXMLáSpring 2.5˻עɨ裬˴ӦóʽXMLáSpring 3.0˻JavaãһͰȫĿع÷ʽԴXML
Щö˿ʱġΪ˼Springúͽҵ֮Ҫ˼άлԱдüռ˱дӦóʱ䡣пһSpringʵãͬʱҪĻرҲ١
֮⣬ĿҲһʱ顣ڻʱҪҪЩ꣬һҪ֮ϵ꣬һѡİ汾֮IJͻ谭ĿĿȡ
SpringBootSpringȱеĸƺŻԼõ˼룬ÿԱҵ֮˼άлȫĵͶ뵽ҵĴдУӶ˿Чʣһ̶Ŀڡ
ʹSpringܽпĹУҪúܶSpringܰspring-corespring-beanspring-contextȣЩͨظӵģҪܶʹüظã翪ע⡢־ȡSpring BootЩҪIJṩĬãȻЩĬǿĵģٴSpringӦ
Spring BootSpring BootʹͿʼSpringӦóס ˺ܶ롣 Ļ˺ܶิԣ˿ԱԿֲɿSpringӦó
Spring MVCSpring MVCڹWebӦóWeb MVCܡ ڸֹܵļ һHTTPWebӦóܡ
Spring BootSpring MVCڲͬĿĶڡ Spring BootSpring MVC֮Ҫ
| Spring Boot | Spring MVC |
|---|---|
| Spring BootʹúĬֵSpringӦó | Spring MVCSpring»ģͼWebܡ |
| ṩĬSpringֵ֧Ŀܡ | ṩڹWebӦóļܡ |
| ֶá | Ҫֶйá |
| Ҫ | DZġ |
| 룬װһԪС | ֱָÿ |
| ˿ʱ䲢ʡ | ʵͬĿҪʱ䡣 |
Spring BootSpringijԱһȫµĿܣĿǾܼͿٵĿSpringӦóáΪ߿ݵʹSpringؿṩ˱ĿܣֻΪܵʹҲṩ˺ܺõĽּܡ
ͼߵĻspringbootڹӦãҲdz˵
springcloudڷҲǴЭspringbootӦó
springcloudаڶصAPISpringcloud GatewayConfig Serever·Circuit BreakerעService RegisttySleuth
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 ֧֡ 磬IntelliJ IDEA Ultimate Ϊ Spring Boot Ŀṩ˳ɫĴɺ͵ܡ֮⣬VSCode Eclipse Ҳṩ˷ḻĹ֧֡
Spring Boot ṩԣءָͿ伴õע ЩԣԱԱá 磬ִ˵ȹʹӦó״̬سΪܡ 磬
Prometheus ĹռӦóָ
Kubernetes Openshift ʹþԺͻԾȽ˵㡣
ֻԻͨ /actuator/logging ˵㼴ɸ־¼
⣬ԱʹԼԶ彡˵Щִ˵㡣
Ĭ£ Spring Boot Ŀ JUnit 5 ⣬Spring Boot ṩ@SpringBootTest עҪʱʼġ ԿԱֻҪд DzٵIJĸ spring ġ
磬ԶɵIJԽǷȷء
@SpringBootTest
class SpringBootDerbyDatabaseApplicationTests {
@
void contextLoads() {
}
}
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://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