很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据,这时候,我们可以利用profile在不同的环境下配置用不同的配置文件或者不同的配置。
spring boot通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properties通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。
一、激活profile的方法
1.配置在配置文件application.properties中
2.在代码中使用@Profile注解来进行配置,在接口实现类上可以配置该实现的具体使用环境
public interface IDBConn {
public void getConn();
}
import org.springframework.context.annotation.Profile;
@Profile("dev")
public class DevDBConn implements IDBConn{
@Override
public void getConn() {
System.out.println("dev conn");
}
}
import org.springframework.context.annotation.Profile;
@Profile("prod")
public class ProDBConn implements IDBConn{
@Override
public void getConn() {
System.out.println("prod conn");
}
}
二、配置多个profile的方法
spring.profiles.include: dev,prod
三、当我们针对不同的环境,如开发环境和生成环境写了多个配置文件如
application-dev-properties
application-prod-properties
这种情况,我们无法在生产环境中通过修改application-properties中的spring.profiles.active来激活配置就非常不方便,可以采用加入启动参数的方法来激活配置,例如
-Dspring.profiles.active=prod