前言
在工作中使用springboot经常有属性注入的场景,下面说一下有默认值和无默认值两种写法的不同
1,有默认值
@Value("${app.center.registered:true}")
private boolean appCenterRegistered;
这中是有默认值的写法,默认是分号后的值,这里为true,但是如果在配置文件中(application.properties 或 application.yml)中设置了appCenterRegistered的值,就会按照配置文件中的值。
如在application.properties中设置
app.center.registered:false
这样appCenterRegistered的值会为false
demo
@RestController
public class ValidTest {
@Value("${app.center.registered:true}")
private boolean appCenterRegistered;
@RequestMapping(value="/valid/test", method = RequestMethod.GET)
@ResponseBody
public String test(@RequestParam("phone") String phone){
return String.valueOf(appCenterRegistered);
}
}
2,无默认值
@Value("${app.center.registered}")
private boolean appCenterRegistered;
这种是无默认值的写法,这种写法要求必须在配置文件(applicaiton.properties或application.yal)中添加该属性的键值对,否则就会报错
Could not resolve placeholder 'app.center.registered' in value "${app.center.registered}
网友评论