【问题标题】:Spring @Value NullPointerExceptionSpring @Value NullPointerException
【发布时间】:2020-05-27 08:57:57
【问题描述】:

我有一个像这样在构造函数中自动装配的整数:

@Value("${application.someNumber:0}") Integer number)

如果配置中的 nmber 为 null,则会出现 NullPointerException。如何编写此表达式,以便如果它为 null 则将其设置为 0 ?然后我会把我自己的验证任务扔到其他地方.. ?

【问题讨论】:

  • 如果不存在,它会设置默认值,不是吗?或者我没有得到问题
  • 最后是) 错字吗?用更大的代码 sn-p 更新问题。
  • 你能发布你的堆栈跟踪吗?

标签: java spring spring-boot


【解决方案1】:

如果你想在构造函数中使用@Value注解,你必须用@Autowired注解构造函数本身。此外,该类必须是 spring 托管 bean(组件、服务...)

【讨论】:

    【解决方案2】:

    首先您应该删除最后的)。至于你的问题。您可以像这样简单地将 0 分配给 number

    Integer number = 0;

    当注入值为null时,number会保持0的原始值,如果不为null则得到注入值

    【讨论】:

    • 但它是在构造函数中注入的,所以我不能分配 0
    • 然后在构造函数的主体中添加以下内容:if (number == null) number = 0;
    猜你喜欢
    • 2013-12-30
    • 2020-01-23
    • 2014-05-16
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 2014-09-22
    • 2012-06-22
    • 1970-01-01
    相关资源
    最近更新 更多