一、简介
Spring Boot来简化Spring应用开发,约定大于配置, 去繁从简,just run就能创建一个独立的,产品级别的应用。
背景:
J2EE笨重的开发、繁多的配置、低下的开发效率、 复杂的部署流程、第三方技术集成难度大。
解决:
“Spring全家桶”时代。
Spring Boot ->J2EE一站式解决方案 ;
Spring Cloud -> 分布式整体解决方案。
优点:
– 快速创建独立运行的Spring项目以及与主流框架集成
– 使用嵌入式的Servlet容器,应用无需打成WAR包
– starters自动依赖与版本控制
– 大量的自动配置,简化开发,也可修改默认值
– 无需配置XML,无代码生成,开箱即用
– 准生产环境的运行时应用监控
– 与云计算的天然集成 。
单体应用
微服务
How Microservices
建议阅读下下面两篇:
• 你必须掌握以下内容:
– Spring框架的使用经验
– 熟练使用Maven进行项目构建和依赖管理
– 熟练使用Eclipse或者IDEA
• 环境约束
– jdk1.8
– maven3.x
– IntelliJ IDEA 2017
– Spring Boot 1.5.9.RELEASE
二、HelloWorld
– 1、创建maven项目
– 2、引入starters
– 3、创建主程序
– 4、启动运行
三、HelloWorld探究
1、starters
• Spring Boot为我们提供了简化企业级开发绝大多数场景的starter pom(启动 器),只要引入了相应场景的starter pom,相关技术的绝大部分配置将会消 除(自动配置),从而简化我们开发。业务中我们就会使用到Spring Boot为 我们自动配置的bean
• 参考 https://docs.spring.io/springboot/docs/1.5.9.RELEASE/reference/htmlsingle/#using-boot-starter
• 这些starters几乎涵盖了javaee所有常用场景,Spring Boot对这些场景依赖的 jar也做了严格的测试与版本控制。我们不必担心jar版本合适度问题。
• spring-boot-dependencies里面定义了jar包的版本
2、入口类和@SpringBootApplication
1、程序从main方法开始运行
2、使用SpringApplication.run()加载主程序类
3、主程序类需要标注 @SpringBootApplication
4、 @EnableAutoConfiguration是核心注解;
5、@Import导入所有的自动配置场景
6、@AutoConfigurationPackage定义默认的包扫描规则
7、程序启动扫描加载主程序类所在的包 以及下面所有子包的组件;
3、自动配置
1、xxxAutoConfiguration
– Spring Boot中存现大量的这些类,这些类的作用就是帮我们进行自动配置
– 他会将这个这个场景需要的所有组件都注册到容器中,并配置好
– 他们在类路径下的 META-INF/spring.factories文件中
– spring-boot-autoconfigure-1.5.9.RELEASE.jar中包含了所有场景的自动 配置类代码
– 这些自动配置类是Spring Boot进行自动配置的精髓