我将文件中的属性读取为:
private @Value("#{externalConfigProperties['myProperty'].split(',')}") List<Integer> myProperty;
但是我想实现一个小的错误控制,我如何才能cacth一个numberformatexception?例如,如果这是我要读取的属性。
myProperty=1,e,5
谢谢
5anewei61#
当spring在应用程序的上下文初始化过程中尝试注入值时,它将抛出numberformatexception。您可以执行以下操作:定义一个setter方法,该方法采用字符串列表而不是整数列表,然后将值注解从变量声明移到方法中,如下所示:
@Value("#{externalConfigProperties['myProperty'].split(',')}") public void setMyProperty(List<String> myProperty) { this.myProperty = new ArrayList<Integer>(); for (String t:myProperty) { try { this.myProperty.add(Integer.valueOf(t)); }catch (NumberFormatException e) { } } }
属性值从string到integer的转换在方法中完成,您可以根据需要处理numberformatexception。
1条答案
按热度按时间5anewei61#
当spring在应用程序的上下文初始化过程中尝试注入值时,它将抛出numberformatexception。
您可以执行以下操作:
定义一个setter方法,该方法采用字符串列表而不是整数列表,然后将值注解从变量声明移到方法中,如下所示:
属性值从string到integer的转换在方法中完成,您可以根据需要处理numberformatexception。