You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

绑定application.properties时如何强制指定字符串配置项为必填?

实现方案

方案1:使用Spring Validation校验(推荐)

这是Spring生态原生支持的简便方案,操作步骤如下:

  • 第一步:引入校验依赖
    如果使用Spring Boot 2.3及以上版本,需要手动引入校验 starter 依赖,Maven配置示例:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
  • 第二步:修改配置类启用校验
    在@ConfigurationProperties标注的Bean方法上添加@Validated注解:
@Configuration
public class FirstConfiguration {

    @Bean
    @Validated
    @ConfigurationProperties("input.param")
    Data buildDataBean() {
        return new Data();
    }
}
  • 第三步:给POJO字段添加非空校验规则
    使用@NotBlank注解标注不允许为空的字符串字段,该注解会校验字段不能为null、也不能是空字符串/全空格字符串:
// Spring Boot 3.x 用jakarta.validation.constraints.NotBlank
// Spring Boot 2.x 用javax.validation.constraints.NotBlank
import jakarta.validation.constraints.NotBlank;

public class Data {

    @NotBlank(message = "input.param.resolution 配置不能为空")
    String resolution;

    @NotBlank(message = "input.param.size 配置不能为空")
    String size;

    // getters and setters 
}

配置完成后,如果对应配置项缺失或者值为空,Spring Boot启动时就会抛出校验异常,直接终止启动流程。

方案2:实现InitializingBean接口手动校验

如果不想额外引入校验依赖,也可以让POJO实现InitializingBean接口,在属性填充完成后手动校验:

import org.springframework.beans.factory.InitializingBean;

public class Data implements InitializingBean {

    String resolution;
    String size;

    @Override
    public void afterPropertiesSet() throws Exception {
        if (resolution == null || resolution.isBlank()) {
            throw new IllegalArgumentException("input.param.resolution 配置不能为空");
        }
        if (size == null || size.isBlank()) {
            throw new IllegalArgumentException("input.param.size 配置不能为空");
        }
    }

    // getters and setters 
}

这种方式同样会在属性绑定完成后执行校验,不符合要求就抛出异常终止启动。

内容的提问来源于stack exchange,提问作者electrode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:06:01