有没有办法,我可以通过它为spring bean设置setter方法的顺序.
例如:
<bean id="tester" class="commons.PropertyTester">   
    <property name="value1" value="${xyz}"></property>
    <property name="value2" value="${abc}"></property>
</bean>
在上面的场景中,value1的setter在value2的setter之前被调用.
当我颠倒属性的顺序如下
<bean id="tester" class="commons.PropertyTester">
    <property name="value2" value="${port}"></property> 
    <property name="value1" value="${server}"></property>
</bean>
在value1之前调用Value2 setter方法.
是否有任何优雅的方式可以强制在value2之前始终为value1调用setter.
一种方法是在value2的setter中抛出异常.为用户提供所需的顺序.还有其他方法吗?
Tom*_*icz 11
我猜你在设置器中做了一些逻辑,并设置value2你假设value1可用.您应该使用@PostContruct注释,而不是依赖于这样的顺序.
@PostConstruct
public void init() {
    //here you are guaranteed to have all the dependencies injected
}
如果您愿意,可以InitializingBean改为实施.
回到原来的问题:我认为没有任何关于在Spring中调用setter的顺序的保证 - 或者至少我会假设没有这样的顺序而且不依赖于它.
| 归档时间: | 
 | 
| 查看次数: | 2871 次 | 
| 最近记录: |