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