개발/웹 교육

스프링 세 번째

이게될까 2023. 11. 2. 15:42
728x90
728x90

beanDefinition 자체가 인터페이스다. 언어나 뭐든 신경쓰지 않는다. 

 

스프링 없이는 요청이 올 때 마다 객체를 새로 만든다.

메모리 낭비가 엄청나다.

 

해결방안: 객체가 하나만 생성되고 공유한다.

how : 두개 이상 생성하지 못하도록 막는다.

1. static영역에 객체 instance를 미리 하나 생성해서 올려둔다.

2. getInstance() 매서드를 통해서만 조회할 수 있다.

3. 생성자를 private로 막아둔다.

 

same ==

equal

 

스프링 컨테이너는 싱글톤으로 알아서 적용해서 바꿔준다.

객체 지향을 위한 여러 규칙, 코드의 깔끔함을 다 유지해준다.

 

주의점

무상태로 설계해야 한다.

값을 변경할 수 없어야한다. - 읽기만 가능해야 한다.  !!!!! 중요 !!!!!!

값을 넣으면 바꿔치기가 된다.

 

어떻게 싱글톤이 유지되나?

임의의 다른 클래스가 싱글톤이 보장되도록 해준다.

등록이 되어있으면 찾아서 반환.

등록이 되어있지 않으면 기존 로직을 호출하여 생성 후 컨테이너에 등록

 

@Configuration이 지워지면 싱글 톤 보장을 하지 못한다.

728x90

'개발 > 웹 교육' 카테고리의 다른 글

스프링 여섯 번째  (0) 2023.11.05
스프링 다섯 번째  (0) 2023.11.05
스프링 네 번째  (0) 2023.11.03
스프링 두 번째  (0) 2023.10.31
첫 진행  (1) 2023.10.30