Spring Boot 配置文件

Spring Boot 配置文件,第1张

Spring Boot 配置文件

目录

一.application.yml(application.yaml)

1.结构

2.对象

3.数组

二.application.properties

1.结构

2.对象

3.数组

三.配置类

1.使用yml文件配置实体类

1.1 yml文件:

1.2 实体类:

1.3 yml文件的松散绑定(松散语法)

2.使用properties文件配置实体类

2.1 properties文件:

2.2 实体类:

四.SpringBoot的多环境配置

1.配置文件的优先级

2.多环境配置

1.作用:

3.配置文件命名:

3.1 yml文件:

3.2 properties文件:

4.激活方式:

4.1 在application.yml文件中:

4.2 在application.properties文件中

5.获取方式:

五.SpringBoot的 自动配置 原理

1.规律

2.原理


目录

一.application.yml(application.yaml)

1.结构

2.对象

3.数组

二.application.properties

1.结构

2.对象

3.数组

三.配置类

1.使用yml文件配置实体类

1.1 yml文件:

1.2 实体类:

1.3 yml文件的松散绑定(松散语法)

2.使用properties文件配置实体类

2.1 properties文件:

2.2 实体类:

四.SpringBoot的多环境配置

1.配置文件的优先级

2.多环境配置

1.作用:

2.配置文件命名:

2.1 yml文件:

2.2 properties文件:

3.激活方式:

3.1 在application.yml文件中:

3.2 在application.properties文件中

4.获取方式:

五.SpringBoot的 自动配置 原理

1.规律

2.原理


springboot的自定义的配置文件有两种,application.yml和application.properties,且命名必须是application。SpringBoot的特点是:自动装配

一.application.yml(application.yaml) 1.结构
​key: value
 
//注:key:(空格)value,没有空格则报错。
2.对象
#对象普通写法
student:
    name: zhangsan
    age: 3
#注:层级关系,并排一列为一级,yaml语法对空格要求十分严格
        
#对象行内写法
student:{name: zhangsan,age: 3}
3.数组
#数组普通写法
class:
    - zhangsan
    - lisi
    - wangwu
    
#数组行内写法
class:[zhangsan,lisi,wangwu]
二.application.properties 1.结构
key=value
2.对象
student.name=zhangsan
student.age=zhangsan
3.数组
class=[zhangsan,lisi,wangwu]
三.配置类 1.使用yml文件配置实体类 1.1 yml文件:
person:
    name: zhangsan${random.uuid}
    age: ${random.int}
    map: {key1: value1,k2: v2,...}
    strList:
        -pen
        -ruler
1.2 实体类:
@ConfigurationProperties(prefix = "person")
@Component  //注册bean
public class person{
    private String = name;
    private int = age;
    private Map map;
    private List strList;
}
​
1.3 yml文件的松散绑定(松散语法)
    yml文件支持yml文件映射到实体类时,yml文件和实体类命名规则不一致,也能正常映射。
即:在命名规则情况下:yml:/myName ->class:/myName 能映射成功;而在命名规则不相同的情况下:yml:/my-name ->class:/myName 也能映射成功。
2.使用properties文件配置实体类 2.1 properties文件:
name=zhangsan
age=7
map={key1: value1,k2: v2,...}
strList=["pen","ruler"]
2.2 实体类:
@ApropertySource(value= "classpath:application.properties")//加载指定的配置类
@Component  //注册bean
public class person{
    //SPEL 表达式取出配置文件的值
    @Value("${name}")
    private String = name;
    @Value("${age}")
    private int = age;
    @Value("${map}")
    private Map map;
    @Value("${strList}")
    private List strList;
}
四.SpringBoot的多环境配置 1.配置文件的优先级
1.file:./config/
2.file:./
3.classpath:/config/
4.classpath:/
​
注:file为项目文件,classpath:类文件,一般在java项目里的main文件下的java或resoures。配置文件一般放在resources目录下。
2.多环境配置 1.作用:

        SpringBoot的多环境配置,可以选择激活需要的配置文件。

3.配置文件命名: 3.1 yml文件:
默认配置文件:application.yml
开发环境配置文件:application-dev.yml
测试环境配置文件:application-test.yml
3.2 properties文件:
默认配置文件:application.properties
开发环境配置文件:application-dev.properties
测试环境配置文件:application-test.properties
4.激活方式: 4.1 在application.yml文件中:

4.1.1 写了多个yml文件的情况下:

#测试环境配置,同一目录下有application-test.yml文件
spring
    prifiles
        active: test
---
#开发环境配置,同一目录下有application-dev.yml文件
spring
    prifiles
        active: dev
            
#"---"起分隔作用,形成两个互不影响的环境配置

4.1.2 同一yml文件:

spring
    prifiles
        active: test
---
server
    port:8081
spring
    prifiles: dev
---
server
    port:8082
spring
    prifiles: test
        
#"---"起分隔作用,形成三个互不影响可以调用的环境配置,相当于三个yml文件
4.2 在application.properties文件中
#开发环境配置,同一目录下有application-dev.properties文件
spring.prifiles.active = dev
5.获取方式:
//在实现类中注入import org.springframework.core.env.Environment 类
@Autowired
private Environment environment;
​
//在方法中使用import org.springframework.core.env.Profiles 类调用静态方法of
//值为环境,可以传入多种
Profiles profiles = Profiles.of("dev","test");
//接受环境进行判断,符合返回true,不符返回false
boolean flag = environment.acceptsProfiles(profiles);
五.SpringBoot的 自动配置 原理 1.规律

        在SpringBoot的配置文件中能配置的东西,都存在一种规律。

        1.在SpringBoot项目中,SpringBoot会默认通过xxxAutoConfiguration类帮我们自动装配了很多配置。

        2.每一个这样的xxxAutoConfiguration类都是容器中的一个组件,最后加入到容器中,用他们来做自动配置。

        3.每一个自动配置类可以进行自动配置功能,但这些配置类需要我们去满足它的激活条件才能生效使用。简单来说就是:根据当前不同的条件判断,决定这个配置类是否生效(可以在配置文件中通过debug: true,查看哪些配置生效、不生效和没有条件)。当这个配置类生效时,这个配置类就会给容器中添加各种组件。这些组件的属性是从对应的properties类中获取的,这些类里面的每一个属性有事和配置文件绑定的。

        4.xxxAutoConfiguration类在自动装配时,通过xxxProperrties类去获取默认值,xxxProperties类上有@ConfigurationProperties(prefix = "yyy")注解。这使我们可以在配置类里通过yyy的值去配置我们想要的东西。

        5.所有在配置文件中能配置的属性都是在xxxProperties类中封装的,配置文件能配置的东西是对应这个配置类中的某个功能。

2.原理

        1.SpringBoot启动会加载大量的自动配置类;

        2.配置文件能写的属性在SpringBoot默认写好的自动配置类中;

        3.查看该自动配置类中到底配置了哪些组件;(只要需要的用到的组件包含在其中,就不需要去手动配置)

        4.给容器中自动配置类添加组件的时候,会从xxxProperties类中获取某些属性。我们只需要在配置文件中指定这些属性即可。

xxxAutoConfiguration:自动配置类,作用是给容器中添加组件;

xxxProperties:封装配置文件中相关的属性。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5684907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存