2017-09-15 6 views
1

j'ai un fichier de configuration de démarrage de printemps avec ces valeurs:SpringBoot: la valeur des propriétés de EL1003E coulée

@Value("#{new Integer('${db.pool.size}')}") 
private Integer dbPoolSize; 

@Value("#{new Integer('${db.minimum.idle}')}") 
private Integer dbMinimumIdle; 

Mais quand je commence l'application que je suis arrivé cette erreur:

Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1003E: A problem occurred whilst attempting to construct an object of type 'Integer' using arguments '(java.lang.String)' 
    at org.springframework.expression.spel.ast.ConstructorReference.createNewInstance(ConstructorReference.java:168) ~[spring-expression-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.expression.spel.ast.ConstructorReference.getValueInternal(ConstructorReference.java:98) ~[spring-expression-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:120) ~[spring-expression-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:242) ~[spring-expression-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:161) ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    ... 42 common frames omitted 

Répondre

1

utilisent Just:

@Value("${db.minimum.idle}") 
private Integer dbMinimumIdle; 

Pas besoin d'instancier explicitement un nouvel entier en utilisant spel.

2

Imaginez que vous avez les application.properties suivants:

db.minimum.idle=12 
db.pool.size=10 

Ensuite, vous devriez juste faire quelque chose comme:

@Value("${db.pool.size}") 
private Integer dbPoolSize; 

@Value("${db.minimum.idle}") 
private Integer dbMinimumIdle; 

Vous ne devez pas créer un nouvel entier, qui se fait par automaquement ressort