2011-07-14 06:03
编辑:蝙蝠
阅读:
7269
次
Spring提供了post-inistialisation回调功能,任何实现InitializingBean的bean会调用afterPropertiesSet方法,在JSF中没有准确的等价操作,但有些操作又必须是要等所有的属性都被注入完成后才能开始的,如何在JSF中实现类似于afterPropertiesSet方法的机制???
查阅了很多资料后发现一些接近的方式:
定义bean的setter方法,例如public void setInitialized(boolean state)
将下面的属性作为managed bean的最后一个属性
<managed-bean>
....
<managed-property>
<property-name>initialized</property-name>
<value>true</value>
</managed-property>
</managed-bean>
JSF规范要求managed properties根据它们声明的顺序进行初始化。所以setInitialized方法会在所有其他属性被调用后进行设置。
因此在最后一个setter调用“注入后”操作即可。
PS:看来我09年时有些东西还是不知道,解决方法是这样:@PostConstruct