作者:U友50082089 | 来源:互联网 | 2023-09-25 08:17
目录SpringCloudYAML配置详解1Properties详解2自定义参数2参数引用3随机数4外部参入4多环境配置5YAML6YAML有以下基本规则:6使用YAML完成多环境
目录
Spring Cloud YAML 配置详解1
Properties详解2
自定义参数2
参数引用3
随机数4
外部参入4
多环境配置5
YAML6
YAML有以下基本规则:6
使用YAML完成多环境配置7
在之前的实例中,我们使用了src/main/resources/application.properties对我们的项目做了个性化的配置,这种配置方式简单明了,也是我们经常使用的
但是应对复杂的商业需求下,多环境和编程化的配置无法得以满足
为此Spring Cloud为我们提供了YAML的配置方式丰富我们的功能和简化我们的开发同时也能简单明了的分辨配置内容。
Properties详解
自定义参数
自定义参数可以让我们在配置文件中定义一些参数以供在程序中使用
在这里我们使用Spring注解的方式实现这个功能
首先创建一个实体类
@Component
public class Dalao {
@Value("${dalao.name}")
private String name;
@Value("${dalao.yanzhi}")
private String yanzhi;
…..getter setter省略
@Component 注解:
把普通pojo实例化到spring容器中,相当于配置文件中的
修改application.propertie增加以下配置参数
dalao.name=mashibing
dalao.yanzhi=100
使用自定义参数
Spring 管理对象
让Spring 注入对象,这里需要注意的是如果自己new的对象是没有被Spring容器管理的,所以不会自动注入属性值给我们
@Autowired
private Dalao dalao;
测试打印
System.out.println(ToStringBuilder.reflectionToString(dalao));
System.out.println(ToStringBuilder.reflectionToString(new Dalao()));
ToStringBuilder
这里用到了ToStringBuilder完成对象转字符串,要使用这个对象的话需要引入Spring的工具包commons-lang3
Pom
org.apache.commons
commons-lang3
3.7
参数引用
在application.propertie中的各个参数值是可以相互引用的
我们修改一下之前的配置
dalao.na
本文来源gaodai.ma#com搞##代!^码网(
me=mashibing
dalao.yanzhi=100
dalao.desc=${dalao.name}is a good teacher,bing bu shi yin wei ${dalao.name} de yan zhi = ${dalao.yanzhi}
实体中添加
@Value("${dalao.desc}")
private String desc;
输出结果
随机数
有些特殊需求,我们不希望设置的属性值是一个固定值,比如服务器随机端口号,某些编号等,我们可以使用${radom}在配置中产生随机int,long或是string
${random.int()} = 随机int
${random.long} = 随机long
${random.int(50)} = 50以内的随机数
${random.int(50,100)} = 50~100之间的int随机数
${random.value}= 随机字符串
配置文件中使用
dalao.xiaodi.zhangyang.yanzhi=${random.int(50,100)}
dalao.xiaodi.zhangyang.xinqing=${random.value}
外部参入
在微服务架构中经常会使用自动运维部署工具,使用这些工具来启动我们的服务
我们的Spring boot程序通常是使用java –jar的方式来启动运行的
对于服务端口号或是一些其他需要在启动服务的时候才能决定的值,如果在配置中写死或是用随机明显是满足不了需求的