Java 在查找方法中使用表达式
我想重写SpringXML中的Java 在查找方法中使用表达式,java,spring,Java,Spring,我想重写SpringXML中的keysForReload方法以返回空迭代器 <!-- MetricsMethodData Cache Store --> <bean id="bean1" class="com.ext.Myclass" scope="singleton" lazy-init="true"> <lookup-method name="keysForReload" bean="metrics.keysForRe
keysForReload
方法以返回空迭代器
<!-- MetricsMethodData Cache Store -->
<bean id="bean1"
class="com.ext.Myclass"
scope="singleton" lazy-init="true">
<lookup-method name="keysForReload" bean="metrics.keysForReload"/>
<!-- Not working as expecting Iterator while it returns ArrayList -->
<!-- can I use expression language somehow value="#{metrics.keysForReload.iterator()}" -->
</bean>
<bean id="metrics.keysForReload" class="java.util.ArrayList">
<constructor-arg>
<list value-type="java.lang.String">
</list>
</constructor-arg>
</bean>
我想在XML中重写此方法
MyClass has keysForReload method
public Iterator<String> keysForReload(){
return keys();
}
MyClass具有keysForReload方法
公共迭代器keysForReload(){
返回键();
}
我可以使用Expression language
从ArrayList
获取迭代器吗?因为我不能改变方法
示例:
value=“#{metrics.keysForReload.iterator()}”
您可以在Spring表达式语言中调用方法并分配给值,但在这种情况下,您必须定义bean度量。看看这个例子 您可以在Spring表达式语言中调用方法并分配给值,但在这种情况下,您必须定义bean度量值。看看这个例子 像这样的东西对你有用吗
@Bean("keysForReload")
public List<String> keysForReload() {
return Lists.newArrayList("val");
}
@Component
public class Myclass{
//your iterator here
@Value("#{keysForReload.iterator()}")
private Iterator<String> itr;
}
@Bean(“keysForReload”)
公共列表keysForReload(){
返回列表。newArrayList(“val”);
}
@组成部分
公共类Myclass{
//这里是你的迭代器
@值(“#{keysForReload.iterator()}”)
专用迭代器itr;
}
这样的东西对你有用吗
@Bean("keysForReload")
public List<String> keysForReload() {
return Lists.newArrayList("val");
}
@Component
public class Myclass{
//your iterator here
@Value("#{keysForReload.iterator()}")
private Iterator<String> itr;
}
@Bean(“keysForReload”)
公共列表keysForReload(){
返回列表。newArrayList(“val”);
}
@组成部分
公共类Myclass{
//这里是你的迭代器
@值(“#{keysForReload.iterator()}”)
专用迭代器itr;
}
是的,您可以在SpEL中调用方法,但您应该定义bean度量。我已经定义了bean度量。keysForReload
但问题是查找方法需要bean引用,并且表达式可以在值项中使用。这应该是可能的,您会遇到什么错误?@kuhajeyan无法将ArrayList转换为迭代器!你真的应该使用@lookup吗?是的,你可以在SpEL中调用方法,但你应该定义你的bean度量。我已经定义了bean度量。keysForReload
,但问题是lookup方法使用bean引用,表达式可以在valuesseems中使用,这应该是可能的,你的错误是什么?@kuhajeyan无法将ArrayList转换为迭代器!你真的应该使用@lookup吗?