10. 어노테이션을 이용한 객체생성

Seungjae·2021년 1월 25일
0

Spring 다지기

목록 보기
10/14

어노테이션을 이용한 객체생성


지금까지는 xml을 이용해서 객체를 생성해왔습니다. 하지만 어노테이션을 이용해서도 객체를 생성할 수 있습니다. 그렇게 할경우 훨씬 직관적인 코드를 작성할 수 있고, xml파일 자체도 깔끔해집니다. 어노테이션을 이용해서 객체를 만드려면 @Component를 사용하면 됩니다.

@Component
public class InlineExamConsole implements ExamConsole {
...
}

그리고 xml에 @Component를 찾을 수 있도록 태그를 하나 추가해줍니다.

<context:component-scan base-package="spring.di.ui" />

이렇게 할 경우 spring.di.ui 아래에 있는 클래스를 살펴주게 됩니다. 따라서 앞에서 설정한 아래 태그는 삭제해줘도 됩니다.

<context:annotation-config />

이렇게 할때 그러면 bean을 어떻게 불러올 수 있을까요?
기존에 getBean을 클래스명 또는 id로 불러왔습니다. 하지만 이 경우 id로 부를경우 에러가 납니다. 이유는 간단합니다. id가 없기 때문입니다. 하지만 이 문제는 간단하게 아래와 같이 해결할 수 있습니다.

@Component("console") // id ="console"
public class InlineExamConsole implements ExamConsole {
...
}

추가적으로 base-package는 ","를 통해서 탐색되는 패키지를 추가할 수 있습니다.

<context:component-scan base-package="spring.di.ui, spring.di.entity" />

@Component의 종류


@Component는 일반적으로 이렇게 바로 @Component로 사용하지 않습니다. @Component는 일반적으로 3가지로 나누어집니다. MVC패턴을 기반으로 @Controller, @Service, @Repository로 구분할 수 있습니다. 각 어노테이션의 의미와 각 클래스의 프로그램 상에서의 역할을 고려하여 적절하게 사용하면 됩니다.

profile
코드 품질의 중요성을 아는 개발자 👋🏻

0개의 댓글

관련 채용 정보