목록2021/05/10 (2)
윤개발
실무에서 @Bean어노테이션을 붙여 등록하는 과정을 반복하다 보면 빈을 등록하는 과정을 누락할수도 있다. 따라서 컴포넌트 스캔을 이용하여 빈을 등록하고 등록된 빈을 자동주입한다. @ComponentScan 기존과 다르게 클래스 내부에 @Bean으로 등록한 클래스가 없고 @Component 애노테이션이 붙은 클래스를 스캔한다. 또한 Component내의 의존관계 주입은 @Autowired를 사용하여 타입에 맞는 의존관계를 자동으로 주입해준다. 탐색 위치와 기본 스캔 대상 basePackages로 탐색할 패키지를 지정하여 스캔할 수 있으며 설정하지 않으면 라이브러리등 모든 자바 소스를 다 스캔하기 떄문에 시간이 오래걸린다. default는 ComponentScan이 붙은 설정정보 클래스의 패키지가 시작 위치..
웹어플리케이션은 고객이 요청을 할때마다 새로운 Controller 객체를 만들고 요청을 처리하고 반환할까? 만약 그렇게된다면 JVM에 계속해서 객체를 생성하고 반환한다. 다수의 요청이오면 엄청난 메모리 점유율과 함께 OOM이 발생할 수도 있다. 그래서 스프링 어플리케이션은 해당 객체가 1개만 생성되고 공유하도록 싱글톤 방식을 사용한다. 먼저 싱글톤 패턴에 대해 알아보자. 싱글턴 패턴 싱글턴 패턴이란 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 아래 코드를 보면 final을 선언하여 애플리케이션 실행 시점에 객체를 할당하고 getInstance를 통해 객체를 얻는 것을 볼 수 있다. private static final SingletonService instance = new S..