[Study] 기술 부채 - Spring
Study : 내가 부족한 기술(Spring)에 대해 정리한다.
Singleton
스프링에서 빈을 등록할 때 사용되는 패턴
한 번 생성 해둔 객체를 에플리케이션 종료시 까지 사용하는 패턴
- 생성 방법
- 기본 생성자 감추기
- private SingleTon(){};
- static final INSTANCE = new SingleTon();
- public static SingleTon getInstance() {return INSTANCE;}
- Lazy Loading
- private SingleTon(){if INSTANCE != null -> throw exception;};
- public static SingleTon getInstance() {if INSTANCE == null -> new SingleTon; return INSTANCE;}
- Syncronized
- public static SingleTon getInstance() {if synchronized(SingleTon.class) {INSTANCE == null -> new SingleTon;} return INSTANCE;}
- Serializable
- private Object readResolver() { return INSTANCE; }
- 기본 생성자 감추기
or Enum 사용
단점
- 생성자가 private 으로 인한 상속 불가(다형성 X)
- 아무나 접근하여 자유롭게 수정 및 공유할 수 있는 전역의 상태를 띔(객체지향 측면에서 안좋음)
댓글남기기