我在我的应用程序上下文中有这个定义:
<beans xmlns:context="http://www.springframework.org/schema/context"
...
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
<context:property-placeholder location="classpath:propfile.properties"/>
我的propfile.properties:
parallelism=4
因为它是maven项目的一部分,所以我找到了这样的文件:
-src/main/java
-src/main/resources
--propfile.properties
现在,在我的组件中:
@WebService
@Component
public class MyService{
@Value("#{parallelism}")
private Integer parallelism;
....
}
在初始化阶段,它给了我
在类型的对象上找不到字段或属性“并行” “org.springframework.beans.factory.config.BeanExpressionContext
为什么呢?在Web应用程序环境中使用property-placeholder是否正确?还是有其他方法来设置属性?
答案 0 :(得分:0)
尝试更改配置文件,如下所示:
<bean id="propfile" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath*:propfile.properties</value>
</list>
</property>
</bean>
和组件:
@WebService
@Component
public class MyService{
@Value("${parallelism}")
private Integer parallelism;
....
}
此外,您还可以使用以下方式访问完整的属性文件:
@Component
public class MyService{
@Resource(name="propfile")
private Properties propfile;
....
}