Spring MVC: @Valeur de l'annotation pour obtenir int valeur définie dans *.fichier de propriétés

J'ai une config.fichier de propriétés:

limit=10

Mon springmvc-servlet.xml:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:config/config.properties</value>
        </list>
    </property>
</bean>

C'est ma classe de contrôleur:

@Controller
@RequestMapping(...)
public class Test extends BaseController
{
    @Value("${limit}") Integer limit;   //This doesn't work
    @Value("#{T(java.lang.Integer).parseInt(${limit})}") Integer limit;   //This also doesn't work

    @RequestMapping(...)
    @ResponseBody
    public String session()
    {
        return String.valueOf(limit);
    }
}

message d'erreur est:

Error creating bean with name 'test': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: java.lang.Integer **.Test.limit; nested exception is org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelParseException: EL1043E:(pos 31): Unexpected token. Expected 'rparen())' but was 'lcurly({)'

des idées?

Utiliser un int au lieu d'une Integer. Je vous suggère aussi d'utiliser <context:property-placeholder /> au lieu de la PropertyPlaceholderConfigurer. Vous permet d'économiser du XML et dans les plus récents printemps versions, il vous donnera le plus puissant PropertySourcesPlaceholderConfigurer.
@Value("${limit}") Integer limit devrait fonctionner. Quel est le message d'erreur dans ce cas? Printemps version utilisez-vous?

OriginalL'auteur zccoding | 2015-01-15