Spring中@Value注解设置默认值问题

本文来说下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注解设置默认值问题

你可能感兴趣的:(核心知识点,spring核心知识,spring)