一、单个文件切换环境里,在application.yml配置文件中添加如下信息
server:
port: 8081
spring:
profiles:
active: prod #激活prod生产环境
---
server:
port: 8083
spring:
profiles: dev
---
server:
port: 8084
spring:
profiles: prod
二、或者修改idea里面的启动d的命令行参数
主要也是在本地开发时候使用
idea在启动的时候会优先加载这里面设置的参数内容
三、修改虚拟机参数配置
添加 -Dspring.profiles.active=dev
四、当项目打包之后部署的时候也可以修改其部署环境
java -jar .\springbootStudy-1.0-SNAPSHOT.jar --spring.profiles.active=dev
五、@Profile实现条件装配功能
比如在类上面添加注解@Profile(“prod”)即可实现不同环境下的切换
application-prod.yaml配置文件
person:
username: prod_user
age: 12
application-test.yaml配置文件
person:
username: test_user
age: 33
创建一个新的接口Person
public interface Person {
String getUsername();
Integer getAge();
}
Person的两个实现类Boss和Worker,要求Boss在pro开发环境下生效,Woker在test环境下生效,就可以如下配置
@Profile("prod")
@Component
@ConfigurationProperties("person")
@Data
public class Boss implements Person {
private String username;
private Integer age;
}
@Profile("test")
@Component
@ConfigurationProperties("person")
@Data
public class Worker implements Person {
private String username;
private Integer age;
}
@RestController()
@RequestMapping("/user")
public class UserController {
@Autowired
private Person person;
@GetMapping("/person")
public Person profiletest(){
return person;
}
}
当我们在配置类中页需要根据环境切换参数的时候,也可以使用@Profile条件装配这种方式。
@Configuration
@Profile("prod")
public class Myconfg {
@Bean
public MyColor getColor() {
return new MyColor();
}
}
六、profile分组管理
是在开发 中我们会遇到编写多个配置文件的情况,对于这么多的配置文件,我们可以进行profile分组管理
在application.properties中添加如下配置信息
#激活prod和pdd两个配置文件
spring.profiles.active=myprod
spring.profiles.group.myprod[0]=pdd
spring.profiles.group.myprod[1]=prod
# spring.profiles.active=test 激活test配置文件
spring.profiles.group.mytest[0]=test
激活的配置文件是application-pdd.yaml和application-prod.yaml两个文件,
如果还有其他配置文件,直接按照数组顺序添加进来即可。
如果想要激活appplication-test.yaml配置文件,只需要改成spring.profiles.active=mytest即可