无论如何,仅当@value存在解析错误时才设置默认值

时间:2019-11-01 13:58:13

标签: java spring config

在Spring中,您可以使用@Value("${num:123}") private int number;注入值编号。

很明显,当配置文件中没有num字段时,默认设置将起作用。

但是,当出现格式错误的邮件时。 Spring会抛出如下错误:

09:54:28.392 [main] WARN org.springframework.context.annotation.AnnotationConfigApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: 
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'valuesApp': Unsatisfied dependency expressed through field 'number'; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "string"

我知道您可以将值注入类型设置为String,然后将其手动转换为Integer类型(可以捕获错误等)。但是,还有其他更优雅的方式来处理这种情况吗?这样,如果配置文件的格式错误,Spring将使用默认值。

0 个答案:

没有答案