前言
本章来学习,Proifile多环境配置,随机值设置以及参数间引用
提示:以下是本篇文章正文内容,下面案例可供参考
一、Proifile多环境配置
Spring Profiles是什么:
Spring Profiles允许用户根据配置文件(dev,test,prod等-开发测试生产)来注册bean,因此,当应用程序在开发中运行时候,只有某些bean可以加载,而在PRODUCTION中,某些其他bean可以加载,假设我们要求是Swagger文件仅用于QA环境,并且禁用所有其他文档,这可以是由配置文件来完成,SpringBoot使得配置文件变得简单。
为什么要多环境配置
在实际开发中,应用程序通常需要部署到不同的运行环境中,例如开发环境、测试环境、生产环境等。不同的环境可能需要不同的环境配置,针对这种情况,不可能手动变更配置文件来适应不同的开发环境,此时就需要对项目进行多环境配置
多环境配置方式
1.Profile文件多环境配置
2.@Profile注解多环境配置
使用步骤
1.多环境配置文件格式
application-{profile}.properties
注:{profile}对应具体的环境标识
dev:开发环境下
test:测试环境下
prod:生产环境下
我们需要用到哪个环境就在全局配置文件设置spring.profiles.active属性激活
#对应各个环境
#格式为spring.profiles.active=对应的环境
spring.profiles.active=dev
- 1
- 2
- 3
- 4
例子:
比如我们现在想在测试环境下进行工作
我们先要在全局配置文件中spring.profiles.active属性激活测试环境
即
spring.profiles.active=test
- 1
其次在测试环境下的配置文件编写我们想要设置的属性
这里我们试一下更改端口号
server.port=8082
- 1
然后然后运行启动类
在config包里面创建一个接口DBConnector
public interface DBConnector { public void configure();
}
- 1
- 2
- 3
- 4
在接口同级别的包里面创建接口实现类
@Configuration//声明为配置类 能被spring扫描到,生成实例存到容器中
@Profile(value = "test")//指定多环境配置类的标识
public class TestDBConnector implements DBConnector { @Override public void configure() {
System.out.println("数据库配置环境-test"); }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
在测试类中
@Autowired private DBConnector dbConnector; @Test public void dbtest(){ dbConnector.configure(); }
- 1
- 2
- 3
- 4
- 5
- 6
可以看到就成功在测试环境下进行相应测试了
二.随机值设置以及参数间引用
随机值设置random
格式为
${random.xx}
- 1
例如设置你的名字在20以内的随机数
you.age=${random.int(20)}
- 1
在测试类中
@Value("${you.age}") private int age; @Test public void contextLoads() { System.out.println(age);}
- 1
- 2
- 3
- 4
- 5
可以看到控制台打印一个1-20随机数字
参数间的引用
在全局配置文件中,各种参数可以互相引用
格式为
${xx}
#xx表示先前在配置文件中已经配置过的属性名。
- 1
- 2
例如在全局配置文件中
you.name=lihua
you.hobby=swim
you.age=${random.int(20)}
#引用参数
you.like=${you.name}and age=${you.age} like ${you.hobby}
- 1
- 2
- 3
- 4
- 5
在测试类中
@Value("${you.like}") private String like; @Test public void contextLoads() { System.out.println(like);}
- 1
- 2
- 3
- 4
- 5
在控制台中看到
总结
本次简单介绍Proifile多环境配置以及随机参数Random以及如何引用参数 基本可以简单跳过文章来源: blog.csdn.net,作者:IT李西西,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/loler15/article/details/114792617