같은 JSF 요청을 위해 내 PhaseListener의 beforePhase()와 afterPhase() 메소드 사이에서 속성을 공유해야합니다.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;
}
}
그렇지 않은 경우 다른 해결책은 무엇입니까?
'ThreadLocal' 변수를 코드의 다른 곳에서 필요로하지 않는 한 낭비하지 마십시오. – BalusC