我正在尝试将属性文件的值注入spring mvc项目的控制器中。我使用的是春季版5.0.4。 下面是我的servlet.xml的定义
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<!-- Step 3: Add support for component scanning -->
<context:component-scan base-package="mu.mra" />
<!-- Step 4: Add support for conversion, formatting and validation support -->
<mvc:annotation-driven/>
<!-- Step 5: Define Spring MVC view resolver -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
<util:properties id="countryOptions" location="classpath: countries.properties" />
</beans>
属性文件位于src / main / resources文件夹中。但遗憾的是我收到了以下错误
org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名称为&#39; studentController的bean时出错&#39;:不满意 通过字段“countryOptions”表达的依赖性&#39 ;;嵌套异常 是org.springframework.beans.factory.BeanExpressionException: 表达式解析失败;嵌套异常是 org.springframework.expression.spel.SpelEvaluationException:EL1021E: 尝试访问该物业时出现问题 &#39; countryOptions&#39;:&#39;使用名称&#39; countryOptions&#39;创建bean时出错: 调用init方法失败;嵌套异常是 java.io.FileNotFoundException:类路径资源[ countries.properties]无法打开,因为它不存在&#39;
我不太清楚属性文件的位置。它应该在WEB-INF文件夹中吗?如果可能的话,我也想对此作一些解释。
谢谢, 阿什利
答案 0 :(得分:1)
你是对的,属性文件确实存在于src / main / resources中 你可以按照以下方式访问它们
<util:properties id="countryOptions" location="classpath:countries.properties" />
或使用注释
@Value( "${property.needed}" )
private String property;