Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Spring2.5.x将单个属性值注入字符串?_Java_Spring - Fatal编程技术网

Java 如何使用Spring2.5.x将单个属性值注入字符串?

Java 如何使用Spring2.5.x将单个属性值注入字符串?,java,spring,Java,Spring,我真的很想在一个属性文件中为一个方法添加一个对单个属性的引用以进行注入 @Resource("${my.service.url}") private String myServiceUrl; 当然,这种语法不起作用;)这就是我在这里问的原因 我知道我可以注入完整的属性文件,但这似乎太过分了,我不想要属性文件-我想要配置的值 编辑:我只能看到PropertyPlaceHolderConfigure示例,其中使用XML将属性连接到给定字段。我仍然不知道如何通过注释实现这一点 您可以尝试将属性“my

我真的很想在一个属性文件中为一个方法添加一个对单个属性的引用以进行注入

@Resource("${my.service.url}")
private String myServiceUrl;
当然,这种语法不起作用;)这就是我在这里问的原因

我知道我可以注入完整的属性文件,但这似乎太过分了,我不想要属性文件-我想要配置的值


编辑:我只能看到PropertyPlaceHolderConfigure示例,其中使用XML将属性连接到给定字段。我仍然不知道如何通过注释实现这一点

您可以尝试将属性“my.service.url”的值注入bean中的一个字段

看看:


HTH.

如果使用XML配置,则可以执行此操作。只需配置PropertyPlaceHolderConfigure并在配置中指定属性值

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <value>classpath:com/foo/jdbc.properties</value>
    </property>
</bean>
<bean ...>
  <property name="myServiceUrl" value="${my.service.url}"/>
</bean>

类路径:com/foo/jdbc.properties

在屏幕上有一条关于这一点的线索。简单的回答是,实际上没有办法使用注释注入单个属性


我听说Spring 3.0将改进对使用注释的支持,因此很可能很快就会解决这个问题。

我知道从最初的帖子开始已经有一段时间了,但我还是设法找到了Spring 2.5.x的解决方案

您可以在springxml配置中创建“String”bean的实例,然后将其注入到带注释的组件中

@Component
public class SomeCompent{
  @Autowired(required=true 
  @Resource("someStringBeanId")
  private String aProperty;

  ...
}

<beans ....>
   <context:component-scan base-package="..."/>

  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    ...
  </bean>
  <bean id="someStringId" class="java.lang.String" factory-method="valueOf">
    <constructor-arg value="${place-holder}"/>
  </bean>
</beans>
@组件
公共类{
@自动连线(必需=真
@资源(“someStringBeanId”)
私有财产;
...
}
...

我为Spring 2.5创建了一个解决此问题的项目。*:


对于Spring 3,您可以使用@Value(${propery.key}”)注释。

此解决方案对我不起作用。首先,似乎到处都有语法错误-您缺少autowire声明后的正确参数,资源注释缺少name属性。最后,我得到一个包含以下XML的BeanCreationException:(