Spring 弹簧设定器方法顺序

Spring 弹簧设定器方法顺序,spring,Spring,是否有任何方法可以设置Springbeans上setter方法的顺序 例: 在上述场景中,value1的setter在value2的setter之前被调用 当我颠倒属性的顺序时,如下所示 <bean id="tester" class="commons.PropertyTester"> <property name="value2" value="${port}"></property> <property name="value1

是否有任何方法可以设置Springbeans上setter方法的顺序

例:


在上述场景中,value1的setter在value2的setter之前被调用

当我颠倒属性的顺序时,如下所示

<bean id="tester" class="commons.PropertyTester">
    <property name="value2" value="${port}"></property> 
    <property name="value1" value="${server}"></property>
</bean>

Value2 setter方法在value1之前调用

有没有什么优雅的方法可以让我们强制总是在value2之前调用value1的setter

一种方法是在value2.的setter中引发异常,要求用户提供所需的订单。
还有其他方法吗?

我猜您在setter中执行一些逻辑,在设置
value2
时,您假定
value1
可用。您应该使用
@postcontract
注释,而不是依赖于这样的顺序

@PostConstruct
public void init() {
    //here you are guaranteed to have all the dependencies injected
}
如果您愿意,您可以改为实现


回到您最初的问题:我不认为有任何关于在Spring中调用setter的顺序的保证,或者至少我会假设没有这样的保证,并且不依赖于它。

除非您告诉Spring处理它,否则此注释不起作用,请参阅示例。
@PostConstruct
public void init() {
    //here you are guaranteed to have all the dependencies injected
}