spring boot是整合spring 一系列的包的坐标集合
对依赖进行整合
总体介绍
spring boot是用来方便构建项目的工具
spring cloud是用来方便spring boot项目之间进行数据交互通讯和配置的
spring cloud data Flow 是用来进行数据的连接的
Spring 缺点
- 配置繁琐
虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多
XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。
Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。
所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所
以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但它要求的回报也不少。- 依赖繁琐
项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导
入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发
进度。
spring boot功能:
SpringBoot提供了一种快速开发Spring项目的方式,而不是对Spring功能上的增强。
- 自动配置
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定
Spring配置应该用哪个,不该用哪个。该过程是SpringBoot自动完成的。
- 起步依赖
起步依赖本质上是一个Maven项目对象模型(ProjectObject Model,POM),定义了对其他库的传递依赖
,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
- 辅助功能
提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。
三个基本注解,controller,service,repository,分别代表mvc层,service层和dao层,是component的特化
spring 起步依赖原理分析
在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
在spring boot中存在版本锁定
spring-boot-starter-parent主要定义一些版本的信息
spring-boot-starter-web 依赖传递(间接依赖了其他版本坐标)
- 在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
- 在各种starter中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程。
- 我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。
spring boot配置文件分类
- SpringBoot提供了2种配置文件类型:properteis和yml/yaml
- 默认配置文件名称:application
- 在同一级目录下优先级为:
properties> yml > yaml
是spring boot yaml文件基本语法
YAML: 基本语法
- 大小写敏感
数据值前边必须有空格,作为分隔符
- 使用缩进表示层级关系(使用python的都懂)
- 缩进时不允许使用Tab键,只允许使用空格(各个系统Tab对应的空格数目可能不同,导致层次混乱),在IDEA编辑器中可以使用tab键。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- #表示注释,从这个字符一直到行尾,都会被解析器忽略。
server:port: 8080address: 127.0.0.1
name: abc#对象
person:name: zhangsanage: 20#对象行内写法
person2: {name: zhangsan,age: 20}#数组
address:- belijing- shanghai
#数组行内写法
address2: [beijing,shanghai]
#纯量
msg1:'hello \n world’#不会识别转义字符,会原样输出
msg2:"hello \n world”#会识别转义字符
参数引用
使用 ${keyname}
name: list
person: name: ${name}
key: valu的冒号后面必须跟上一个空格和多个空格
spring中获取数据
使用@Value注解进行字段自动注入
使用Environment Bean进行
@Autowired
private Environment env;
使用@ConfigurationProperties注解进行自动装配,如果有层级关系,就在注解传参时指定节点
@ConfigrationProperties(preson=“节点路径”)
如果需要自定义配置yal高亮有提示的需要进行配置的处理器
spring boot配置profile文件
-
profile是用来完成不同环境下,配置动态切换功能的。
-
profile配置方式
- 多profile文件方式:提供多个配置文件,每个代表一种环境。
- .application-dev.properties/yml开发环境
- ·application-test.properties/yml测试环境
- ·application-pro.properties/yml生产环境
- yml多文档方式:
- 在yml中使用—分隔不同配置
- 多profile文件方式:提供多个配置文件,每个代表一种环境。
-
profile激活方式
- 配置文件:再配置文件中配置:spring.profiles.active=dev
- 虚拟机参数:在VMoptions指定:-Dspring.profles.active=dev
- 命令行参数:java-jarxxx.jar --spring.profiles.active=dev
-
jar包生成
点击Maven依赖中的生命周期(Lifecycle)中的package
内部配置加载顺序
项目加载路径和模块配置文件