目录
一.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=value2.对象
student.name=zhangsan student.age=zhangsan3.数组
class=[zhangsan,lisi,wangwu]三.配置类 1.使用yml文件配置实体类 1.1 yml文件:
person: name: zhangsan${random.uuid} age: ${random.int} map: {key1: value1,k2: v2,...} strList: -pen -ruler1.2 实体类:
@ConfigurationProperties(prefix = "person") @Component //注册bean public class person{ private String = name; private int = age; private Map1.3 yml文件的松散绑定(松散语法)map; private List strList; }
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四.SpringBoot的多环境配置 1.配置文件的优先级map; @Value("${strList}") private List strList; }
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.yml3.2 properties文件:
默认配置文件:application.properties 开发环境配置文件:application-dev.properties 测试环境配置文件:application-test.properties4.激活方式: 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 = dev5.获取方式:
//在实现类中注入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:封装配置文件中相关的属性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)