首先我先贴上我的三个配置文件
application.yml:
spring:
profiles:
active: dev
application-dev.yml:
server:
port: 8080
servlet:
path: /zzf
cupSize: B
age: 18
sex: 男
content: "cupSize: ${cupSize},age: ${age}"
girl:
cupSize: B
age: 18
sex: 男
application-prod.yml:
server:
port: 8888
servlet:
path: /zzf
cupSize: B
age: 18
sex: 男
content: "cupSize: ${cupSize},age: ${age}"
girl:
cupSize: B
age: 18
sex: 男
其中application-prod.yml与application-dev.yml的差别只有端口号
下面我先介绍两种属性注入方式:
方式一:
girl:
cupSize: B
age: 18
sex: 男
然后注册一个类:
@Component//表示为组件
@ConfigurationProperties(prefix = "girl")//对应的就是配置文件中的girl
public class GirlProperties {
private String cupSize;
private Integer age;
private String sex;
public String getCupSize() {
return cupSize;
}
public void setCupSize(String cupSize) {
this.cupSize = cupSize;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
然后在Controller类进行依赖注入
@RestController
public class HelloController {
@Autowired//依赖注入
GirlProperties girlProperties;
@RequestMapping(value = "hello2",method = RequestMethod.GET)
public String say2(){
return "Hello Spring Boot!\n"+girlProperties.getCupSize()+"\n"+girlProperties.getSex()+"\n"+"\n"+girlProperties.getAge()+"\n";
}
}
方式二(通过@value方式):
cupSize: B
age: 18
sex: 男
content: "cupSize: ${cupSize},age: ${age}"
@RestController
public class HelloController {
@Value("${cupSize}")//
private String cupSize;
@Value("${sex}")
private String sex;
@Value("${age}")
private Integer age;
@Value("${content}")
private String content;
@RequestMapping(value = "hello",method = RequestMethod.GET)
public String say(){
return "Hello Spring Boot!\n"+cupSize+"\n"+sex+"\n"+"\n"+age+"\n"+content;
}
}
这就是两种配置设值方式。推荐第一种。
下面说一下怎么同时使用两种配置进行启动springboot。
1.用cmd方式启动第一个配置
进入项目然后编译
G:\SpringBoot>java -jar target/girl-0.0.1-SNAPSHOT.jar --spring.profiles.active=
prod(表示启动的是application-prod.yml)它的端口是8888
2.用idea启动(application-prod.yml中端口为8080)
在application.yml中配置为
spring:
profiles:
active: dev
然后运行
可以看到我用两个配置启动了同一个springboot(在测试配置和正式配置中很有用)