我有一个四季豆如下
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}
其中,
sample
是Sample
bean的名称(默认名称是将第一个字母转换为小写字母的类的名称),而url
是要从该bean获得的属性的名称。您可以检查此链接以获取更多详细信息:https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/expressions.html#expressions-beandef