1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java不能对什么类型进行转换_@Value - 无法将类型'java.lang.String'的值转换为所

java不能对什么类型进行转换_@Value - 无法将类型'java.lang.String'的值转换为所

时间:2023-11-02 21:14:37

相关推荐

java不能对什么类型进行转换_@Value - 无法将类型'java.lang.String'的值转换为所

美好的一天,我正在使用Spring 4.1.1.RELEASE开发一个Web应用程序。所有Spring的配置与注解来实现,它工作得很好,除了一两件事:@Value - >无法将类型'java.lang.String'的值转换为所需类型'java.lang.Integer'

我与这些行项目config.properties文件 cases.caseList.filter=test

cases.caseList.numberOfCasesPerPage=50

我有一个配置类 @Configuration

@ComponentScan(basePackageClasses={CaseConfig.class})

@PropertySource(value = "classpath:config.properties")

public class CasesModuleTestContextConfig { ... }

而另一个类 @Component

public class HttpRequestParamsToPaginationParams extends AbstractConverter, PaginationParams> {

@Value("${cases.caseList.filter}")

private String filter;

@Value("${cases.caseList.numberOfCasesPerPage}")

private Integer count;

...

}

属性“过滤器”的值是从属性资源中成功注入的。但我的财产“计数”得到一个例外:

13:58:45.274 [main] WARN o.s.c.s.GenericApplicationContext - Exception encountered during context initialization - cancelling refresh attempt

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cz.pokus.core.test.config.ConversionServiceTestConfig': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.util.List cz.pokus.core.test.config.ConversionServiceTestConfig.converterList; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'httpRequestParamsToPaginationParams': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.lang.Integer cz.pokus.core.cases.converter.HttpRequestParamsToPaginationParams.count; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Integer'; nested exception is java.lang.NumberFormatException: For input string: "${cases.caseList.numberOfCasesPerPage}"

at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) ~[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]

...

Caused by: org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Integer'; nested exception is java.lang.NumberFormatException: For input string: "${cases.caseList.numberOfCasesPerPage}"

...

Caused by: java.lang.NumberFormatException: For input string: "${cases.caseList.numberOfCasesPerPage}"

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_20]

at java.lang.Integer.parseInt(Integer.java:569) ~[na:1.8.0_20]

at java.lang.Integer.valueOf(Integer.java:766) ~[na:1.8.0_20]

...

当我改变属性字符串“计数”的类型就开始工作:

@Value("${cases.caseList.numberOfCasesPerPage}")

private String count;

我相信春天是能够转换成字符串当使用@Value将属性资源的值注入到Integer属性中时为Integer。我发现了一些人们没有抱怨的例子。你有什么想法,为什么它不适合我?

非常感谢。

-11-24

Vojtech

+2

它工作还是刚启动没有错误。在这种情况下,我希望这个值字面上是'$ {cases.caseList.numberOfCasesPerPage}'。确保你已经将'PropertySourcesPlaceHolderConfigurer'注册为'public static' bean。 –

-11-24 13:44:59

java不能对什么类型进行转换_@Value - 无法将类型java.lang.String的值转换为所需类型java.lang.Integer...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。