我有一个四季豆如下

package com.test;

@Component
public class Sample{

  @Value("${url}")
  private String url = null;

  public String getURL(){
    return "test"+url;
  }
}


我的context.xml文件中还有另一个bean,它消耗了上述bean中的url

 <bean id="build" class="com.test.Consumer">
    <property name="url" value="#{new com.test.Sample().getPassword()}"/>
</bean>


但是它失败,并显示以下错误:

java.lang.IllegalStateException: Failed to load ApplicationContext
Expression parsing failed; nested exception is java.lang.NullPointerException


这是正确的:value="#{new com.test.Sample().getURL()}"吗?

最佳答案

正确的方法是这样的:

#{sample.url}


其中,sampleSample bean的名称(默认名称是将第一个字母转换为小写字母的类的名称),而url是要从该bean获得的属性的名称。
您可以检查此链接以获取更多详细信息:https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/expressions.html#expressions-beandef

10-07 19:05
查看更多