JPA Specification - 실수했던 거
왜 static을 스프링 빈으로 선언하면 안되는가
- Static은 소스가 실행되면서 메모리에 한번 할당되고 프로그램이 종료될 떄까지 해제되는 변수이다.
- .메모리에 한 번 할당되므로 여러 객체가 해당 메모리를 공유하게 된다.
- 그러니까 굳이 Spring bean으로 선언해서 의존성을 주입해 다른 객체에서 사용하지 않아도 된다.
- 이미 static은 모든 객체에서 객체 생성 없이 호출해서 사용할 수 있다.
- 그러니까 이것을 두 개다 사용하는 것은 중복이다.
- 하나만 사용해도 원하는 결과를 얻을 수 있는 것이기 때문이다.
- Jpa specification에서는 의존성 주입이 아닌 static으로 spec을 만드는 것을 스펙으로 공식문서에서 애기하고 있으니까
- 스프링 빈을 선언했다면 그것을 제거하는 게 맞다.
Refernece