春天找不到属性

时间:2015-05-29 08:20:17

标签: spring

我在我的应用程序上下文中有这个定义:

<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是否正确?还是有其他方法来设置属性?

1 个答案:

答案 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;

              ....

   }