본문 바로가기

스프링/스프링 핵심 기술

(12)
4. IoC 컨테이너: 빈의 스코프 빈의 스코프 스프링에서는 빈의 스코프를 싱글톤, 프로토 타입 등으로 설정이 가능하며 그에 따라 속해있는 빈들이 상태가 변경될 수 있다. 싱글톤 빈을 등록하면 기본값이 싱글톤이므로 싱글톤으로 등록이 된다. Single, Proto를 우선 @Component를 통해 빈으로 등록하였다. 아무 설정을 하지 않았으므로 Proto는 현제 싱글톤 객체이다. 출력을 확인해보면 Single에서 가져온 Proto와 일반 Proto와 같은 인스턴스인 것을 알 수 있다. 싱글톤 객체를 사용할 때는 프로퍼티가 공유되므로 Multi Thread 환경에서 Thread-safe 하지 않다. 프로토타입 Proto를 @Scope를 통해 prototype으로 지정한다. Bean을 여러 개 출력해보면 싱글톤은 같은 인스턴스가 출력되나 프로..
3. IoC 컨테이너: @Component와 ComponentScan Component, Component Scan 빈으로 등록할 수 있는 Component와 그 종류들에 대해 살펴보고 사용한 Component들을 스캔하여 빈으로 등록할지 결정하는 Component Scan에 대해 알아본다. Component @Component Annotation을 붙이면 그 객체는 빈으로 등록이 된다. 계층이나 상황에 맞게 명시적으로 붙일 수 있도록 추가로 4가지의 종류가 존재한다. 이는 @Component를 Meta Annotation으로 가지고 있어 똑같은 기능을 한다. @Repository Persistence Layer에서 빈으로 등록할 때 주로 사용하는 Annotation @Service Business Layer에서 빈으로 등록할 때 주로 사용하는 Annotation @Con..
2. IoC 컨테이너: @Autowire @AutoWired 등록된 빈을 주입하여 사용하고 싶을 때 사용하는 Annotation이다. 필요 한 의존 객체의 "타입"에 해당하는 빈을 찾아 주입한다. required의 기본값은 true이므로 빈을 찾지 못하면 App 구동 실패 생성자, 세터, 필드에서 사용할 수 있다. (생성자는 스프링 4.3부터 생략 가능) 1. 해당 타입의 빈이 한 개인 경우 @Service와 @Repository를 통해 빈으로 등록하였으므로 정상적으로 빈을 찾아 주입한다. @Repository를 제거했을 때 Repository에 Annotation을 주지 않고 생성자를 통해 빈을 주입하려고 하면 에러가 발생한다. 생성자는 생성 시 userRepository의 Bean을 찾지 못해 에러가 뜨는 건 확실하나 Setter는 생성 시..
1. IoC 컨테이너: 스프링 IoC컨테이너와 빈 설정 방법들 Spring IoC Container 스프링 IoC 컨테이너와 번 설정 방법들에 대해서 알아본다. 컨테이너 적절한 설정만 되어있다면 누구의 도움 없이도 프로그래머가 작성한 코드를 스스로 참조한 뒤 알아서 객체의 생성과 소멸을 컨트롤해준다. IoC(Inversion of Conrol) 제어의 역전 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는 게 아닌, 주입받아 사용하는 방법 스프링 프레임워크에서는 인스턴스의 생성부터 소멸까지 인스턴스의 생명주기를 개발자가 아닌 IoC 컨테이너가 대신해준다. 스프링 IoC 컨테이너 BeanFactory Interface(가장 최상위에 있는 인터페이스) 애플리케이션 컴포넌트의 중앙 저장소. 빈 설정 소스로부터 빈 정의를 읽고, 빈을 구성하고 제공한다. 빈(Bean)..