我有一个config.properties文件:
limit=10
我的springmvc-servlet.xml:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:config/config.properties</value>
</list>
</property>
</bean>
这是我的控制器类:
@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);
}
}
错误消息是:
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({)'
有什么想法吗?
3条答案
按热度按时间gdrx4gfi1#
请尝试以下操作:
文档位于http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/new-in-3.html
示例如下:
更新:我测试过,也有同样的问题。通过以下说明,我可以将属性值注入到配置了注解的springmvc3.0控制器中
rryofs0p2#
试试这个:
@Value("#{new Integer('${limit}')}")
以及nr7wwzry3#
在代码中:
classpath是指war文件中的web inf/classes路径。那么您在web inf/classes中有配置文件夹吗?
如果是,则检查使用基于xml的配置,如下所示:
如果您仍然得到一个错误,那么肯定有问题的属性文件加载。