Spring Boot优点:
1.快速创建独立运行的Spring项目以及与主流框架集成
2.使用嵌入式的Servlet容器,应用无需打成WAR包
3.starters自动依赖与版本控制
4.大量的自动配置,简化开发,也可修改默认值
5.无需配置XML,无代码生成,开箱即用
6.准生产环境的运行时应用监控
7.与云计算的天然集成
SpringBoot依赖导入:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.5.RELEASE</version>
</dependency>
</dependencies>
使用Spring Initializer快速创建Spring Boot项目
IDE都支持使用Spring的项目1创建向导快速创建一个Spring Boot项目
选择我们需要的模块:向导会联网创建Spring Boot项目
默认生成的Spring Boot项目:
主程序已经生成,我们只需我们自己的逻辑
resources文件夹中的目录结构:
static:保存所有的静态资源,js, css images
templates:保存所有的模块页面:(Spring Boot默认Jar包1使用嵌入式tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf);
application.properties:Spring Boot应用的配置文件;可以修改一些默认设置
配置文件
SpringBoot使用全局的配置文件,配置文件名是固定的
application.properties
application.yml
配置文件的作用:修改SpirngBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;
YAML
以数据为中心,比Json、xml更适合做配置文件
基本语法
k:(空格)V:表示一对键值对(空格必须有);
以空格的缩进进行控制层级关系,只要是左对齐的一列数据,都是同一个层级的
属性和值是大小写敏感
值的写法
字面量:普通的值(数字、字符串、布尔)
k:v:字面直接来写
字符串默认不用加上单引号或者双引号;
“”:双引号,不会转义字符串里边的特殊字符,会作为本身想要表示的意思
name:"zhangsan \n lisi":输出:zhangsan 换行 lisi
‘ ’:会转义特殊字符;特殊字符最终只是一个普通的字符串数据
name:"zhangsan \n lisi":输出:zhangsan \n lisi
对象、Map(属性和值)(键值对):
对象:(k:v的方式)
friends:
lastName: zhangsan
age: 20
行内写法:
friends: {lastName:zhangsan,age:18}
数组(List、Set)
用- 值表示数组中的一个元素
pets:
- cat
- dog
- pig
行内写法
pets: [dog,cat,pig]
配置文件值得注入
配置文件:
person:
lastName: zhangsan
age: 18
boss: false
birth: 2017/12/12
maps: {k1: v1,k2: 12}
lists:
- lisi
- zhaoliu
dog:
name: 小宝
age: 2
javaBean:
/**
*将配置文件中配置的每个属性的值,映射到组件中
* @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关配置进行绑定
* prefix = "person":配置文件中哪个下边的所有属性进行一一映射
* 只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能
*/
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
@PropertySource&@ImportResource
@PropertySource:加载指定的配置文件;
@PropertySource(value = "{person.properties}")
@ImportResource:导入Spring的配置文件,让配置文件里的内容生效;
Spring Boot里边没有Spring的配置文件,自己编写的配置文件,不能自动识别;
让Spring配置文件生效,加载进来:@ImportResource标注在一个配置类上
@@ImportResource("{classpath:beans.xml}")
导入Spring配置文件让其生效
Spring Boot推荐给容器中添加组件的方式:全注解方式
Profile
1.多1Profile文件
在主配置文件编写的时候,文件名可以是application-{profile}.properties/yml
默认使用application.properties的配置
2.yml支持多文档块方式
server:
port:8081
spring:
profiles:
active:prod
-----
server:
port:8083
spring:
profiles:dev
----
server:
port:8084
spring:
profiles:prod #指定属于哪个环境
3.激活指定profile
1.在配置文件中指定spring.profiles.active=dev
2.命令行:
–spring.profiles.active=dev
3.虚拟机参数
-Dspring.profiles.active=dev
配置文件加载位置
springboot启动会扫描以下位置的application.properties或者application.yml文件作为Srping boot的默认配置文件
-file:./config
-file:./
-classpath:/config/
-classpath:/
优先级从高到低。高优先级的配置会覆盖低优先级的配置。