싱글톤 클래스란 무엇인가요?두 개의 관련 서비스에 대해 클래스의 단일 인스턴스를 실행하는 데 도움이 될 수 있습니까?
-
18-09-2019 - |
문제
복잡하게 들릴 수도 있지만 어쨌든 물어보겠습니다.
서비스를 운영하고 있어요 ㅏ 클래스를 사용하는 엑스.다른 서비스를 시작하고 싶어요 비 클래스를 사용하는 것 ㅏ 새로운 수업 외에도.
서비스 ㅏ 이미 실행 중입니다.나는 서비스의 핫 배포를 수행합니다 비.
진짜 질문은 다음과 같습니다 - 서비스하겠습니다 비 동일한 클래스 인스턴스를 사용하십시오. 엑스 또는 별도의 인스턴스.싱글톤 클래스가 여기서 어떻게 도움이 될 수 있나요?
해결책
각 서비스는 자체 운영 체제 (OS) 프로세스 공간에서 실행되며 각 프로세스 공간에는 자체 클래스 인스턴스가 있습니다. "싱글 톤"클래스는 일반적으로 클래스에서 정적 필드를 사용하여 코딩되며, 이는 코드가 실행중인 프로세스 공간에 로컬이되므로 싱글 톤을 공유하지 않습니다. 각각은 자체 인스턴스를 얻을 수 있습니다.
그러나 일부 외부 공유 동기화 프로세스를 사용하여하려는 작업을 수행 할 수 있습니다 (예 : Java Equivilent가 .NET Remoting (또는 WCF)에 대한 싱글 톤을 노출시키는 네트워크 노출 엔드 포인트는 사용하도록 코딩됩니다. 싱글 톤, 그리고 두 서비스를 모두 "연결하고"원격으로 접근 할 수있는 싱글 톤을 사용하십시오).
다른 팁
Java 웹 서비스가 실행되는 방법에 대한 세부 사항은 잘 모르지만 둘 다 동일한 VM에서 실행되는 경우 클래스가 VM의 모든 응용 프로그램에서 공유되므로 정적 필드가 공유될 것이라고 생각합니다.싱글톤 패턴은 일반적으로 단일 인스턴스를 정적 멤버에 연결하여 수행되므로 싱글톤이 공유됩니다.
이는 다음을 기반으로 합니다. 클린 코드 회담 - "전역 상태와 싱글톤"
두 가지 간단한 웹 서비스를 작성하여 테스트할 수 있어야 합니다.하나는 플래그 설정과 같이 싱글톤에 대해 작업을 수행하고 다른 하나는 이를 확인합니다.