java - 如何强制通过@Value 注释进行属性注入(inject)?

标签 java spring spring-annotations

我使用 @ConfigurationProperties 注释从属性文件填充了以下 Test.java POJO 类。我已经看到使用 @Required 注释使其成为必需的。

不是在 setter 方法级别定义注释,而是在 @Value 注释中是否有任何注释或选项可用于定义 Mandatory、NotNull 等条件?

@Component
@ConfigurationProperties(prefix = "com.test")
public class Test {
  private String name;

  @Required
  public void setName(String name) {
    name = name;
  }

  public String getName(String name) {
    name = name;
  }
}

这是强制特定属性的唯一正确方法吗?我可以将哪些其他此类注释用于此类条件或验证目的?

最佳答案

您可以对属性使用验证,只是不是以您设想的方式。 您可以做的是在字段(或 setter )本身上使用标准验证注释(如 @NotNull 等)。

例如

@NotNull
@Size(min=2, max=10)
private String name;

查看 this部分文档

文档基本上说的是,您只需在类路径上有一个兼容的 JSR303 validator 实现,并使用相关的注释。 Spring Boot 会处理剩下的事情

关于java - 如何强制通过@Value 注释进行属性注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30865475/

相关文章:

java - JProfiler 9.2 "CMS Old Gen"内存池中有哪些对象?

java - 如果 Item Reader 不返回任何内容,如何跳过 Spring Batch block 中的 Item Writer?

java - 使用 com.zaxxer.hikari.HikariDataSource 时出错

java - 在 Spring JSP 页面中使用集合时出现 Hibernate LazyInitializationException

java - 在模拟器上成功运行 Android 应用程序后,我该怎么办?

java - 从孙类调用父类构造函数,调用父类或祖父类构造函数?

java - 更新多个文本框 Java GUI

java - 从 Groovy 配置中使用 Spring 动态语言支持

spring - 在没有 Spring Boot 的情况下创建上下文后防止 Spring Batch 自 Action 业触发

java - 使用 Spring Security 注解 isFullyAuthenticated v/s hasRole