스프링 컨테이너에 빈 등록시 싱글톤패턴으로 등록 된다
위의 테스트 코드로 동일한 싱글톤 객체가 반환된 것을 확인 할 수 있다!
( 싱글톤 패턴이던 스프링 같은 싱글톤 컨테이너를 사용하던, 객체 인스턴스를 하나만 생서해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 객체 상태를 유지(statueful) 하게 설계해선 안된다
무상태 (stateless) 로 설계 한다 )
무상태(stateless)란 상태를 공유하는 필드 변수가 없는 것을 의미한다.
특정 클라이언트가 의존할 수 있는 필드 변수가 존재하면 안된다. 당연히 값을 변경할 수 없어야 한다. 가능한 메서드를 이용해 값을 읽기만 할 수 있도록 한다.
싱글필드 변수 대신 공유되지 않는 변수를 사용하면 좋다. 지역 변수, 파라미터, ThreadLocal이 이에 해당한다. 스프링 빈의 필드에 공유되는 변수가 존재하면 서비스에 큰 문제가 발생할 가능성이 크다.