背景
很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据,这时候,我们可以利用profile在不同的环境下配置用不同的配置文件或者不同的配置。
spring boot 提供
spring boot允许你通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。
profile的配置文件可以按照application.properties的放置位置一样,放于以下位置:
在这里我们就定义俩个profile文件,并在俩个文件中都分别写上变量env
application-sit.properties
application-dev.properties,
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ApplicationValueController {
@Value("${env}")
private String env;
@RequestMapping("value")
@ResponseBody
public String getValue() {
return "env: "+env;
}
}
当application.properties 中spring.profiles.active=dev时,启动springboot
浏览器验证:http://127.0.0.1:8080/value
当application.properties 中spring.profiles.active=sit时,重新启动springboot