自定义属性
创建一个springboot项目的时候,src/main/java/resources目录下默认创建一个application.properties,springboot 也支持application.yml格式文件。
application.yml自定义一组属性格式如下:
my:
age: 17
name:andy
@RestController
public class MiyaController {
@Value("${my.name}")
private String name;
@Value("${my.age}")
private int age;
@RequestMapping(value = "/miya")
public String miya(){
return name+":"+age;
}
}
// 多配置项属性赋值
my:
name: forezp
age: 12
number: ${random.int} // 随机整数
uuid : ${random.uuid} // 32位uuid
max: ${random.int(10)} // <10随机数 ${random.int[10,20]} //随机数10-20
value: ${random.value} // 随机字符串
greeting: hi,i'm ${my.name}
@Data
@ConfigurationProperties(prefix = "my")
@Component //可忽略
public class ConfigBean {
private String name;
private int age;
private int number;
private String uuid;
private int max;
private String value;
private String greeting;
}
@RestController
@EnableConfigurationProperties({ConfigBean.class})
public class LucyController {
@Autowired
ConfigBean configBean;
@RequestMapping(value = "/lucy")
public String miya(){
return configBean.getGreeting() + ","
+ configBean.getName() + ","
+ configBean.getUuid() + ","
+ configBean.getMax();
}
}
自定义配置文件
有时候不把配置写入application.yml,而是写入到自定义配置文件,比如test.properties
com.forezp.name=forezp
com.forezp.age=12
test.properties属性文件信息赋值给javabean
@Configuration
@PropertySource(value = "classpath:test.properties")
@ConfigurationProperties(prefix = "com.forezp")
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
@RestController
@EnableConfigurationProperties({ConfigBean.class, User.class})
public class LucyController {
@Autowired
ConfigBean configBean;
@RequestMapping(value = "/lucy")
public String miya(){
return configBean.getGreeting() + ","
+ configBean.getName() + ","
+ configBean.getUuid() + ","
+ configBean.getMax();
}
@Autowired
User user;
@RequestMapping(value = "/user")
public String user(){
return user.getName()+user.getAge();
}
}
多环境配置文件
在真实开发环境中,我们需要不同的配置环境;格式为application-{profile}.properties,其中{profile}对应的环境标识
application-dev.yml:开发环境
application-test.yml:测试环境
application-prod.yml:生产环境
application.yml:
spring:
profiles:
active: dev //激活dev
其中application-dev.yml:
server:
port: 8082
指定8082端口启动。