我有一个spring bean配置文件,我将spring的下列类定义为spring bean。
由于运行时的某些原因,filterProvider
bean在没有map参数的情况下被实例化。
您可以从docs看到SimpleFilterProvider
确实有这样的构造函数,并且SimpleBeanPropertyFilter
实现BeanPropertyFilter
。为什么不是spring使用我的构造函数来初始化这个bean(Map参数)
<bean id="productAttributesAndAdvertiserNameFilter" class="org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter" factory-method="filterOutAllExcept">
<constructor-arg value="name"/>
</bean>
<bean id="offerIdFilter" class="org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter" factory-method="filterOutAllExcept">
<constructor-arg value="id"/>
</bean>
<bean id="filterProvider" class="org.codehaus.jackson.map.ser.impl.SimpleFilterProvider">
<constructor-arg>
<util:map value-type="org.codehaus.jackson.map.ser.BeanPropertyFilter">
<entry key="onlyNameFilter" value-ref="productAttributesAndAdvertiserNameFilter" />
<entry key="onlyIdFilter" value-ref="offerIdFilter" />
</util:map>
</constructor-arg>
</bean>
更新:
作为杰克逊1.9.5的修复此问题(感谢大肚)
任何帮助,将不胜感激。
也许你使用的方法不同于你正在阅读的文档。虽然我觉得Spring会抱怨参数不匹配。你有没有任何堆栈跟踪? – AHungerArtist 2012-01-30 11:03:05
@AHungerArtist文档是1.9.4,我使用1.9.2,我检查了1.9.2的文档,它们是一样的。不幸的是,我没有任何堆栈跟踪,因为Spring不会抛出任何错误。它只是通过它没有arg构造函数来实例化bean。 – Ittai 2012-01-30 11:07:15