目录
2、在resources中创建两个profile对应的配置文件
前言
在项目开发的时候,生产环境和测试环境的一些配置可能会不一样,有时候一些功能也可能会不一样,所以可能会在上线的时候手工修改这些配置信息。但是Spring中提供了Profile功能。只需要在启动的时候添加一个虚拟机参数,激活环境所要用的Profile就可以了。
除了application.properties文件, 特定配置属性也能通过Profile配置文件application-{profile}.properties来定义。 特定Profile属性跟标准application.properties相同的路径加载, 并且特定profile文件会覆盖默认的配置。
一、实例展示
1、创建一个profile包
用来测试是不是从不同的配置文件中取的值(代码中使用了统一的属性注入注解,也可以使用Value逐一对每个属性进行注入)
2、在resources中创建两个profile对应的配置文件
- application-dev.properties:
- application-prod.properties:
3、设置environment
代表Profile选项的参数名:spring.profiles.active
- 运行结果:
二、Other
有时候可能还会有这样的需求:生产环境或者开发环境我们所看到的功能是不同的,也需要我们根据配置项来激活不同的功能
1.先定义一个Service的接口:
代码如下(示例):
package org.etc.controller.service;
public interface ProfileService {
public String getProfileDomain();
}
2.提供两种Profile的实现:
代码如下(示例):
@Service
@Profile("dev")
public class ProfileDevServiceImpl implements ProfileService{
@Override
public String getProfileDomain() {
StringBuffer buffer = new StringBuffer("I'm development. I eat :...");
buffer.append("rice");
String str = buffer.toString();
return str;
}
}
@Service
@Profile("pro")
public class ProfileProServiceImpl implements ProfileService{
@Override
public String getProfileDomain() {
StringBuffer buffer = new StringBuffer("I'm product. I eat :...");
buffer.append("meat,beef,fish...");
String str = buffer.toString();
return str;
}
}
运行结果:自行可以更改环境中的value来获取dev/pro的输出结果