揭开Spring Boot的面纱

小课堂

分享人:韦 杰

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的,每个微服务仅关注于完成一个功能。使用Spring Cloud可以快速搭建微服务,而Spring Cloud是基于Spring Boot的。

2.知识剖析

Spring Boot是由Pivotal团队提供的基于Spring4 的条件注册的一套快速开发整合包,其设计目的是用来简化新Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,SpringBoot 提供了基于spring 的各种starter(传感器)的快速启动。

Spring Boot将很多魔法带入了Spring应用程序的开发之中,其中最重要的是以下四个核心。
自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。

3.常见问题

1:SpringBoot和Spring的关系?

2:起步依赖是什么?

3:SpringBoot中如何配置属性?

4.解决方案

1:SpringBoot和Spring的关系?

spring就好比一个大型的电子元件生产公司,它生产的元件性能都很优秀,但是坊间使用它的元件的作坊,拿到手之后 还得搞一些电焊,衔接,可能要花个10天半个月最后做成一个家电或者机器人。有一天这个公司就宣布,我们现在提供 了一些功能模块,比如摄像头传感器,扩音器传感器,压力传感器,它们都是统一的usb接口的,只需要插线连接就能使用了。

Spring Boot没有引入任何形式的代码生成,而是利用了Spring 4的条件化配置特性, 以及Maven和Gradle提供的传递依赖解析,以此实现Spring应用程序上下文里的自动配置。 简而言之,从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的Spring Bean配置。有了Spring Boot,你不用再写这些样板配置了,可以专注于应用程序的逻辑, 这些才是应用程序独一无二的东西。

2:起步依赖是什么?

我们把以Spring-boot-starter-xx作为名字的jar包称为Spring Boot的起步依赖。这一类的依赖是spring提供的针对日常企业应用开发各种场景的自动依赖模块,就像是一个工具箱,装好了你需要的各种工具(依赖),“开箱即用”使得开发各种场景的spring应用更加迅捷

3:SpringBoot中如何配置属性?

实际上,Spring Boot应用程序有多种设置途径。Spring Boot能从多种属性源获得属性,包括 如下几处。 (1) 命令行参数 (2) java:comp/env里的JNDI属性 (3) JVM系统属性 (4) 操作系统环境变量 (5) 随机生成的带random.*前缀的属性(在设置其他属性时,可以引用它们,比如${random. long}) (6) 应用程序以外的application.properties或者appliaction.yml文件 (7) 打包在应用程序内的application.properties或者appliaction.yml文件 (8) 通过@PropertySource标注的属性源 (9) 默认属性 这个列表按照优先级排序,也就是说,任何在高优先级属性源里设置的属性都会覆盖低优先 级的相同属性。例如,命令行参数会覆盖其他属性源里的属性。

5.编码实战

            
        

6.扩展思考

SpringBoot启动原理?

7.参考文献

参考一:SpringBoot实战干货系列

参考二:《SpringBoot揭秘:快速构建微服务体系》

8.更多讨论

......

鸣谢

特别感谢 - 王玉琛师兄

另外,也感谢大家观看

BY : 韦 杰