public static final Object foo = Xyz.generateFoo();
같은 정의가 그리고 내 응용 프로그램은 여러 개의 사용자 정의 클래스 로더를 사용하고 있습니다. 모든 수업에 foo
의 동일한 인스턴스가 표시되도록하려면 어떻게해야합니까?
외부 저장소 (예 : System.Properties 또는 파일)를 사용하지 않는 것이 좋습니다. 감사.
public static final Object foo = Xyz.generateFoo();
같은 정의가 그리고 내 응용 프로그램은 여러 개의 사용자 정의 클래스 로더를 사용하고 있습니다. 모든 수업에 foo
의 동일한 인스턴스가 표시되도록하려면 어떻게해야합니까?
외부 저장소 (예 : System.Properties 또는 파일)를 사용하지 않는 것이 좋습니다. 감사.
공통 상위 클래스 로더가로드 한 클래스에 값에 대한 참조를 배치하십시오.
이 Xyz.generateFoo();
의 결과가 항상 같거나 변수 public static final Object foo = Xyz.generateFoo();
에 할당 된 후 원하는 곳에 동일한 인스턴스에 액세스하고 싶습니까?
일부 맞춤 클래스 로더가 (예 : webapp 클래스 로더처럼) "부모 클래스 로더 우선 검사"규칙을 위반하는 경우이를 보장 할 수있는 방법이 없습니다.
그렇지 않으면 Tom Hawtin이 제안한 것처럼 부모 클래스 로더가로드 한 클래스에 해당 필드를 배치 할 수 있습니다.
파일에 날짜를 저장해도 foo의 동일한 인스턴스가 어떤 방식 으로든 보장되지 않습니다. 또한 클래스 로더는 일반적으로 트리 구조를 특징으로하며, 부모 클래스 로더에 의해로드 된 모든 것은 동일합니다. – bestsss