Profile多环境配置
在实际开发中,应用程序通常需要部署到不同的运行环境中,例如开发环境、测试环境、生产环境等。不同的环境可能需要不同的环境配置,针对这种情况,不可能手动变更配置文件来适应不同的开发环境,此时就需要对环境进行多环境配置。
使用Profile文件来进行多环境配置
application-{profile}.properties
- {profile}对应具体的环境标识
激活指定环境的方式:
- 通过命令行方式激活指定环境的配置文件
- 在全局配置文件中设置spring.profiles.active属性激活
演示过程
创建3个properties文件,分别命名为“application-dev.properties”(开发)、“application-test.properties”(测试)、“application-prod.properties”(生产)
为了演示效果,分别对三个配置文件进行端口号的配置:
application-dev.properties
server.port=8081
application-test.properties
server.port=8082
application-prod.properties
server.port=8083
通过命令行方式激活指定环境的配置文件
在敲命令之前,先将项目进行打包(最好先进行clean操作,将target目录进行清空)
打开命令窗口,进入target目录,并输入命令:
F:\chapter02\target>java -jar chapter02-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
其中,dev可换成test和prod,显示出不同的结果
回车,运行后可以发现,Tomcat的默认端口被修改成8081
在全局配置文件中设置spring.profiles.active属性激活
在全局配置文件中,输入代码:
spring.profiles.active=test
在项目启动类中,进行测试:
测试成功
使用@Profile注解进行多环境配置
相关注解
@Profile:作用于类,通过value属性指定环境配置
注:等同于Profile文件名称中的profile值。
激活指定环境的方式
- 在全局配置文件中配置spring.profiles.active属性
演示过程
首先在config包下创建一个名为DBConnector接口,在这个接口中声明一个方法:
package com.itheima.chapter02.config;
public interface DBConnector {
public void configure();
}
接下来,再在config包下,创建类实现DBConnector接口,并重写configure()方法来模拟进行不同的数据库的连接配置。
package com.itheima.chapter02.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
@Profile(value="dev") //指定多环境配置类的标识
public class DevDbConnector implements DBConnector {
@Override
public void configure(){
System.out.println("数据库配置环境--dev");
}
}
然后,在全局配置文件中设置spring.profiles.active属性激活
spring.profiles.active=dev
最后在测试类中,测试:
@Autowired
private DBConnector dbConnector;
@Test
public void dbtest(){
dbConnector.configure();
}
还可以用test、prod进行测试,方法是一致的。