Spring/Spring

Spring singleton vs Java static

김짜이상 2022. 4. 17. 16:26

큰 차이점은 ScopeThread Safe 여부이다.

 

Java의 static은 ClassLoader 기준이고, Spring singleton은 ApllicationContext 기준이다.

Tomcat을 was로 사용한다고 했을때, WebApplication별로 별도 클래스로더를 사용하여 동일 WebApplication끼리 공유할 수 있게 한다.

스프링 싱글톤은 DispatcherServlet 위에 등록된 ApllicationContext별로 공유하며 Spring IoC컨테이너에서 공유가 가능하다.

스프링 싱글톤은 IoC Container에 의해 Thread Safe를 자동으로 보장하게 되어 있다.

 

반응형