栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot 配置文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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:封装配置文件中相关的属性。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/684357.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号