本文来说下Spring中@Value注解设置默认值问题
问题描述
使用@Value注解将变量进行自动注入的时候,经常会出现的一个问题就是我们可能会由于在配置参数中忘记设置该参数造成整个项目报错,其实我们可以通过给被@Value注解作用的变量进行注入的时候如果没有找到该配置参数时设置一个默认值,相当于是一个兜底的方案。
常见的默认值
yml配置
app:
string: abc
isFlag: false
intValue: 123
stringArray: a,b,c
intArray: 1,2,3
实例代码
package com.wideth.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@Api(tags = "springValue")
@RequestMapping("/api/spring")
public class SpringValueController {
//为字符串设置空值
@Value("${app.string:}")
private String stringValue;
//为布尔值设置默认值
@Value("${app.isFlag:true}")
private boolean booleanValue;
//为整数设置默认值
@Value("${app.intValue:234}")
private int intValue;
//为字符串数组设置默认值
@Value("${app.stringArray:aa,bb}")
private String stringArrayValue;
//为整数数组设置默认值
@Value("${app.intArray:11,22}")
private String intArrayValue;
@ApiOperation(value = "默认值--字符串")
@PostMapping("/springValueString")
public String springValueString() {
log.info("======>>>"+stringValue);
return "success";
}
@ApiOperation(value = "默认值--布尔值")
@PostMapping("/springValueBoolean")
public String springValueBoolean() {
log.info("======>>>"+booleanValue);
return "success";
}
@ApiOperation(value = "默认值--整数值")
@PostMapping("/springValueInt")
public String springValueInt() {
log.info("======>>>"+intValue);
return "success";
}
@ApiOperation(value = "默认值--字符串数组")
@PostMapping("/springValueStringArray")
public String springValueStringArray() {
log.info("======>>>"+stringArrayValue);
return "success";
}
@ApiOperation(value = "默认值--整数数组")
@PostMapping("/springValueIntArray")
public String springValueIntArray() {
log.info("======>>>"+intArrayValue);
return "success";
}
}
本文小结
本文描述了Spring中@Value注解设置默认值问题