xml의 단점
1) 너무 복잡하다
2) 의존관계를 파악하기가 어렵다
개발자들은 java 코드와 함께 의존관계를 파악하는 것을 선호
=> 자바 코드에 xml 설정을 추가
어노테이션 사용방법
1) context 네임스페이스를 추가
2) 어노테이션을 컨테이너가 사전에 스캔할 예정
=> 스캔 범위를 지정해주어야 함
3) <bean> 등록없이 자동으로 객체 생성가능
@component : 해당 클래스를 객체화해라
java = new VO();
xml == <bean id="vo" class="xxx.VO" />
어노테이션 == @component("vo") =>> bean을 대체하는 어노테이션이 컴포넌트
4) 의존성 주입(DI)
@Autowired - 멤버변수 뿐 아니라 메서드, 생성자에서도 사용 가능
해당 멤버변수의 타입을 체크
메모리를 확인해서 해당 멤버변수와 같은 타입을 주입해줌
메모리에 존재하는 객체라면 주입
@Qualifier("이름")
1) Autowired는 타입만 체크하기 때문에 Qualifier로 하나씩 지정해주어야 함
2) 의존관계가 달라질 경우 이름을 바꿔야 하는 단점이 있음
3) @Autowired의 대상이 @Component로 되어있는 것이 불리할 때가 있음
=> .xml 설정과 @설정을 함께 사용
@Component를 상속받는 어노테이션
Component를 사용하기보다 특정 작업부분에서 사용하는 어노테이션을 사용하게되면 속도의 장점이 있어 사용
1) @Repository - DAO에 사용하는 어노테이션
2) @Service - DAO를 멤버변수로 가지는 서비스
컴포넌트 사용
1. 컴포넌트만 해도 메모리 적재가 됨
2. 대신 분석하기 힘듦
3. 해당 클래스를 확실하게 하기 위해 어노테이션 괄호에 이름 지정
예시


클래스에서 @Component를 통해 객체화한 부분이 아래 사진에서 <bean> 을 통한 객체화와 같다.

위에서 지정한 'gw'를 Qualifier를 통해 이름 지정
==> 하지만 Qualifier의 단점 : 의존 주입의 변경이 필요한 경우로 인해 xml과 @를 함께 사용
applicationContext.xml

<bean>을 통해 객체화를 타겟 => Qualifier 필요 x
'IT Study > Spring' 카테고리의 다른 글
Spring - aop 설정을 @(어노테이션)으로 설정하기 (0) | 2023.01.02 |
---|---|
Spring - JoinPoint / 바인드 변수 (0) | 2023.01.02 |
Spring - AOP(Aspect Oriented Programming) 설정 (0) | 2023.01.02 |
Spring - 제어의 역행(IoC), 생성자 인젝션(생성자 주입방식) (0) | 2023.01.02 |
Spring - 설치 및 프로젝트 생성하기 (0) | 2023.01.02 |
댓글