정적 메소드 내부에서 spring.net 컨텍스트를 인스턴스화하면 메모리 누출이 발생합니다.

StackOverflow https://stackoverflow.com/questions/1640582

  •  08-07-2019
  •  | 
  •  

문제

최근 에이 문제를 해결하고 누군가가 나에게 좋은 설명을 줄 수 있는지 궁금해했습니다. 나는 몇 가지 리팩토링을하고 있었고 Spring Context를 만들어 다음과 같은 포함 된 구성 파일에서 구성된 서비스를 가져 왔습니다.

var myService = new XmlApplicationContext("assembly://MyAssembly/MyNamespace/MyService.config").GetObject( "myService") as MyService;

일반적으로 이것은 잘 작동하는 것처럼 보이지만,이 경우에는 정적 메소드 내부에 있었기 때문에 메모리 누출이 발생했기 때문에 왜 이런 종류의 일을 피하고 싶습니다. 이 방법은 처음에는 정적이 아니어야하지만 또 다른 문제입니다. 일반적으로, 나는이 작업을 수행하지 않고 Web.config를 통해 ASP.NET 페이지에 직접 서비스를 주입하지만이 경우에는 편리했기 때문에 나에게“모든 일을 잘못하고 있습니다. -)

맥스

도움이 되었습니까?

해결책

정적 메소드가 있고 MyService 인스턴스 핸들을 유지하면 Spring.net의 Singleton Map 및 귀하와 공유됩니다. 참조가있는 한 응용 프로그램 컨텍스트도 고수됩니다. 정적 클래스에 생성 된 모든 객체를 유지하지 않으면 메모리가 지속적으로 성장하는 경우 상황을 완전히 설명하지는 않지만 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top