2021.11.14_05.자바와스프링에서찾아보는패턴
본문 바로가기
CS Study/디자인패턴

2021.11.14_05.자바와스프링에서찾아보는패턴

by KyeongMin 2021. 11. 14.
728x90
반응형

싱글톤 패턴 실무에서 어떻게 쓰이나?

  • 스프링에서 빈의 스코프 중에 하나로 싱클톤 스코프
  • 자바 java.lang.Runtime
  • 다른 디자인 패턴(빌더, 퍼사드, 추상 팩토리 등) 구현체의 일부로 쓰이기도 함

Runtime

public class RuntimeExample{
  public static void main(String[] args){
		Runtime runtime = Runtime.getRuntime();
    System.out.println(runtime.maxMemory());
    System.out.println(runtime.freeMemory());
  }
}
  • 이 경우 new로 선언이 안됨
  • 이 런타임은 자바 어플리케이션 실행하는 환경에 대한것
    • 실행환경의 메모리 정보등 출력 가능

스프링의 경우

public clas SpringsExample{
  public static void main(String[] args){
		ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
    
    string hello = applicationContext.applicationContext.getBean("hello", String.class);
    string hello1 =applicationContext.applicationContext.getBean("hello", String.class);
	
    System.out.println(hello == hello1)
    	
  }
}

// 다른 클래스
public class SpringConfig{
	@Bean
  public String hello(){
		return hello;
  }
}
  • 두개의 같은 인스턴스가 나옴
  • 싱글톤 패턴이라고 부르기 보다는 싱글톤 스코프라고 함
    • 이것은 유일한 인스턴스로 관리하는것 , 싱글톤은 아니다.
  • 다른것이지만 유일한 객체가 필요한 경우 저런식으로 등록해서 사용 한다.

https://github.com/3DPIT/study/blob/master/05.%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%ED%95%99%EC%8A%B5%ED%95%98%EB%8A%94GoF%EC%9D%98%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4/01.%EA%B0%9D%EC%B2%B4%EC%83%9D%EC%84%B1%EA%B4%80%EB%A0%A8%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4/2021/11/1114/01.%EC%8B%B1%EA%B8%80%ED%86%A4%ED%8C%A8%ED%84%B4/05.%EC%9E%90%EB%B0%94%EC%99%80%EC%8A%A4%ED%94%84%EB%A7%81%EC%97%90%EC%84%9C%EC%B0%BE%EC%95%84%EB%B3%B4%EB%8A%94%ED%8C%A8%ED%84%B4/2021.11.14_05.%EC%9E%90%EB%B0%94%EC%99%80%EC%8A%A4%ED%94%84%EB%A7%81%EC%97%90%EC%84%9C%EC%B0%BE%EC%95%84%EB%B3%B4%EB%8A%94%ED%8C%A8%ED%84%B4.md

 

GitHub - 3DPIT/study

Contribute to 3DPIT/study development by creating an account on GitHub.

github.com

 

728x90
반응형

댓글