이제 얼추 스프링을 두달 가량 공부하면서 스프링이 무엇인지는 알았는데 왜 쓰는지 잘 몰랐었다 ㅋㅋ;;
머리에 든거 순대국밥밖에 없어서 그런듯
늘 공부했던 디자인패턴 중 가장 많이 들어본 싱글톤 패턴을 구현해보았다.
뭐 디자인패턴도 이론만 아는 상태였는데 왜 쓰는지 알 것 같다.
싱글톤 패턴을 구현할때 가장 중요한 점은 공유되는 객체를 사용ㄴㄴ 왜냐면 값이 바뀌기 때문임.
그리고 private 생성자를 사용하여 외부에서 값을 변경하지 못하도록 해야한다.
드디어 오늘.. 스프링을 왜 사용하는지 조금 알았다.
싱글톤 패턴을 구현하지 않아도 스프링 컨테이너는 자동으로 싱글톤을 구현해준다.
그것이 바로 @configuration 어노테이션이다.
이 코드 상 memberRepository 는 3번 호출이 되지만, @configuration 어노테이션을 붙인 후, 테스트를 돌려보니
memberRepository는 한번만 호출이 된다. @configuration 어노테이션을 지우고 생성하면, 3번이 호출된다. 당연히 세번 호출된
애들 모두 다른 인스턴스를 가지고 있다.(싱글톤이 깨짐)