나는 Aspect 클래스 (spring-aop)를 가지고있다. 나는 어떤 매개 변수를 가져 와서 클래스 필드에 저장하는 한 가지 조언이 있습니다. 두 번째 조언은 이러한 매개 변수를 사용합니다. 그것은 기능 테스트에 사용되며 여러 사용자가 동시에 실행할 수 있기 때문에 thread-safe로 만들어야합니다. 내가 어떻게 해?Java의 Aspect 클래스에서 스레드 안전 캐시를 구현하는 방법은 무엇입니까?
public class SomeAspect {
private String parameters;
public void saveParameters(JoinPoint jp) {
Object[] args = jp.getArgs();
Object firstArg = args[0];
this.parameters= (String) firstArg;
}
public void useParameters() {
doSmth(parameters);
}
}
캠입니다. aspect를 통해 "private Object mutex"필드를 추가 한 다음 동기화 (뮤텍스)합니까? – AlexWien
모든 사용자 스레드가 동일한 매개 변수를 사용하도록 하시겠습니까? 아니면 모든 사용자가 자신의 매개 변수를 갖기를 원합니까? 첫 번째 경우에는 잠금 또는 '휘발성'또는 'AtomicReference'를 사용할 수 있습니다. 두 번째 경우에는'ThreadLocal' 또는 유사한 것을 사용할 수 있습니다. – SamYonnou
두 번째 케이스가 필요합니다. 나는 ThreadLocal을 시도 할 것이다. 감사합니다 –