1. Bean 등록 메타정보 구성 전략
1) XML단독 사용
- 모든 Bean을 명시적으로 XML에 등록하는 방법
- 생성되는 모든 Bean을 XML에서 확인 가능하지만 갯수가 많아지면 관리 어려움
- 설정 파일을 동시에 공유시 충돌 문제 발생
- setter 메서드 또는 Constructor가 코드내에 반드시 존재
- 운영 중에 사용하기에 용이함
2) XML과 빈 스캐닝(Bean Scanning)의 혼용
- Bean으로 사용될 클래스에 특별한 어노테이션(Annotation)을 부여해주면 이런 클래스를 자동으로 찾아서 Bean으로 등록
- XML 문서 생성과 관리에 따른 수고를 덜어주어 개발 속도 향상 가능
- Bean들 간의 의존관계가 어떻게 되는지 한 눈에 파악하기 힘들고 관리가 힘들수 있음
- 개발환경에 적합한 방식
2. Bean 관련 Annotation
1) Bean 등록 Annnotation
- @Component : 컴포넌트를 나타내는 일반적이 스테레오 타입으로 <bean>의 태그와 동일 역할
- @Repository : 퍼시스턴스(persistence) 레이어, 영속성을 가지는 속성(파일, 데이터베이스)을 가진 클래스
- @Service : 서비스 레이어, 비지니스 로직을 가진 클래스
- @Controller : 프리젠테이션 레이어, 웹 어플리케이션에서 웹 요청과 응답을 처리하는 클래스(보통 Restful API에서 첫 호출되는 URL 매핑클래스)
2) Bean 의존 관계를 주입 Annnotation
- @Autowired : 정밀한 의존관계 주입시 사용되며 프로퍼티, setter메서드, 생성자, 일반 메서드 사용 가능. 의존하는 객체를 주입할 때 주로 Type을 이용
- @Resource : 자원을 자동 연결할 때 사용하며 프로퍼티, setter 메서드에 적용 가능. 의존하는 객체를 주입할 때 주로 Name을 이용
- @Value : 단순한 값을 주입할 때 주로 사용. @Value("Spring")은 <property... value="Spring"/> 와 동일
- @Qualifier : @Autowired 어노테이션과 같이 사용. 동일한 타입이 여러개가 존재할 때 특정 Bean을 찾기 위해 @Qualifier을 같이 사용
3) Component Scan 태그
- @Component를 통해 자동으로 Bean을 등록하고, @Autowired로 의존관계를 주입받는 어노테이션을 클래스에서 선언하여 사용했을 경우에는 해당 클래스가 위치한 특정 패키지를 Scan하기 위한 설정을 XML에 해주어야 함
- <context:include-filter> : 자동 스캔 대상에 포함
- <context:exclude-filter> : 자동 스캔 대상에서 제외
3. 프로퍼티(Property) 파일을 이용한 설정 방법
'개발 기술 이야기 > spring' 카테고리의 다른 글
[Spring 기본 - 5] Bean의존 관계 설정 방법 (0) | 2021.03.25 |
---|---|
기본 스프링프로젝트 만들기 2/2 (0) | 2021.03.23 |
기본 스프링프로젝트 만들기 1/2 (0) | 2021.03.23 |
[Spring 기본 - 4] jUnit와 Spring-Test (0) | 2021.03.22 |
[Spring 기본 - 3] IOC와 DI (0) | 2021.03.10 |