- @Annotation 방식
- XML 파일에는 구동시킬 필수 요소만 작성하고 소스코드에 Annotation으로 표시하여 구동하는 방식 - @Annotation 종류 - Bean 등록 시 사용
@Component | - 객체(컴포넌트)를 나타내는 일반적인 타입으로, <bean> 태그와 동일한 역할 |
@Repository | - Persistence Layer, 영속성을 가지는 속성(파일 / 데이터베이스)을 보유한 클래스 - ex) Data Access Object Class |
@Service | - Service Layer, 비즈니스 로직을 가진 클래스 - ex) Service Class |
@Controller | - Presentation Layer, 웹 애플리케이션에서 View에서 전달된 웹 요청 / 응답을 처리하는 클래스 - ex) Controller Class |
- @Annotation 종류 - 의존성 주입 시 사용
@Autowired | - 정밀한 의존 관계 주입(DI)이 필요한 경우에 유용함 - @Autowired는 필드 변수, Setter 메소드, 생성자, 일반 메소드에 적용 가능함 - 의존하는 객체를 주입할 때 주로 Type을 이용하게 됨 - @Autowired는 <property>, <constructor-arg> 태그와 동일한 역할을 함 |
@Resource | - 애플리케이션에서 필요로 하는 자원을 자동으로 연결할 때 사용함 - @Resource는 프로퍼티, Setter 메소드에 적용 가능함 - 의존하는 객체를 주입할 때 주로 Name을 이용하게 됨 |
※ @Autowired와 @Resource 어노테이션
- 공통점 : @Component로 의존관계를 설정한 객체로부터 의존 관계를 자동으로 주입
- 차이점 : @Autowired는 Type으로, @Resource는 Name으로 연결
- Spring Annotation 빈 스캐닝(Bean Scanning)
- <context:component-scan> 태그
: @Component를 통해 자동으로 Bean을 등록하고, @Autowired로 의존 관계를 주입 받는 어노테이션을 클래스에서 선언하여 사용했을 경우에는 해당 클래스가 위치한 특정 패키지를 Scan하기 위한 설정을 XML에 해줘야 함.
이때 사용하는 태그
- 빈 스캐닝(Bean Scanning)
: Bean으로 사용될 클래스에 특별한 어노테이션(Annotation)을 부여하고 Spring 컨테이너가 이를 통해
자동으로 Bean을 등록하는 방식을 빈 스캐닝을 통한 자동 인식 Bean 등록 기능이라고 함.
※ 장점 : 어노테이션을 부여하고 자동 스캔으로 Bean을 등록하면 xml 문서 생성과 관리에 따른 수고를 덜어주고 개발 속도를 향상시킬 수 있음.
: 개발자간 xml 설정 파일의 충돌을 최소화 할 수 있음.
※ 단점 : 애플리케이션에 등록될 Bean이 어떤 것들이 있고, Bean들 간의 의존 관계가 어떻게 되는지
한 눈에 파악할 수 없음.
'Framework > Spring' 카테고리의 다른 글
Mybatis (0) | 2025.02.06 |
---|---|
Spring IoC(Inversion of Control) / Spring DI(Dependency Injection) (0) | 2025.02.05 |
Spring Framework (0) | 2025.02.03 |
Framework 기본 개념 (0) | 2025.02.03 |