1.pom文件结构
1.1继承
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
Spring Boot 的父级依赖,只有继承他的项目才是Spring Boot项目。
spring-boot-starter-parent是一个特殊的starter,它从来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标枪
1.2依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
启动器依赖,使用启动器添加jar会更方便,包含了web全栈的基础jar包。此处不需要特意配置web的版本,他会自动根据spring boot的版本下载他所支持的版本。
也可以正常依赖其他版本的web。
1.3插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
spring-boot-maven-plugin插件是将spring boot的应用程序打包成jar包的插件,将所有应用启动运行所需要的jar包都包含进来,从逻辑上具备独立运行的条件,当运行“mvn package”进行打包后,使用“java -jar” 命令就可以直接运行。
2.启动类
Spring Boot的启动类的作用是东Spring Boot项目,是基于Main方法来运行的。
注意: 启动类在启动时会做注解扫描,扫描位置是为同包或者子包下的注解,所以启动类的位置应放于包的根下。
2.1启动类和启动器的区别
启动类表示项目的启动入口
启动器表示jar包的坐标
2.2创建启动类
3.启动器
Spring Boot将所有的功能场景都出去出来,做成应该starter(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来,要用什么场景就导入什么场景,在jar包管理上非常方便,最终实现一站式开发。
Spring Boot提供44个启动器
spring-boot-starter
这是Spring Boot 的核心启动器,包含了自动配置,日志,和YAML。
4.配置文件
Spring Boot提供一个名称为 application的全局配置文件,支持两种格式properties格式和YAML格式。
全局配置文件,文件名不可修改必须命名为application
4.3配置文件存放位置
当前项目根目录中
当前项目根目录下的一个/config子目录中
项目的resources,即classpath根路径下
项目的resources,即classpath根路径下的/config目录中
4.4配置文件的加载顺序,配置文件优先级
4.4.1不同格式的加载顺序
如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。
如果同一个配置属性,在多个配置文件都配置了,默认使用第一个读取到的,后面读取到的不覆盖前面读取到的。
4.4.2不同位置的加载顺序
4.4.2.1当前项目根目录下的一个/config子目录中(最高)
config/application.properties
config/application.yml
4.4.2.2当前项目根目录中(其次)
application.properties
application.yml
4.4.2.3项目中resource即classpath根路径下的/config目录中(一般)
resource/config/application.properties
resource/config/application.yml
4.4.2.4项目中resource即classpath根路径中(最后)
resource/application.properties
resource/application.yml
4.5配置文件中的占位符
4.5.1占位符语法
语法:${}
4.5.2占位符的作用
¥{}中可以获取框架提供的方法中的值如:random.int等。
占位符可以获取配置文件中的键的值赋给另一个键位值。
4.5.3生成随机数
${random.value} 类似uuid的随机数,没有‘-’连接
${random.int} 随机取整形范围内的一个值
${random.long} 随机取长整型范围内的一个值
${random.long(100,200)}随机生成长整型100-200范围内的一个值
${random.uuid}生成一个uuid,有短杠连接
${random.int(10)} 随机生成一个10以内的数
${random.int(100,200)}随机生成一个100-200范围以内的数