对于同一个 JSF 请求,我需要在 PhaseListener 的 beforePhase() 和 afterPhase() 方法之间共享一个属性。
下面的代码片段是线程安全的吗?
public class MyPhaseListener implements PhaseListener {
private MyObject o = null;
@Override
public void beforePhase(PhaseEvent event) {
if (condition) {
o = new MyObject();
}
}
@Override
public void afterPhase(PhaseEvent event) {
if (o != null) {
o.process();
o = null;
}
}
@Override
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
}
如果不是,还有什么其他解决方案?