HongCat 개발 스토리

4. Bean 등록 Annotaion 본문

FrameWork

4. Bean 등록 Annotaion

홍캣 2019. 12. 6. 10:19

2019.12.06

Annotation

  • 대부분의 프레임워크가 그렇듯 Spring Framework 역시 XML 파일의 설정이 매우 중요
  • XML파일의 과도한 설정을 하게 되면 부담스러워 짐
  • XML방식 이외에도 Annotation방식을 설정을 지원함

DI Annotation

Bean으로 사용될 클래스에 특별한 Annotation을 부여하고 Spring 컨테이너
가 이 Annotation을 통해 자동으로 bean을 등록하는 방식으로, 빈 스캐닝
(Bean Scanning)을 통한 자동인식 Bean 등록기능이라고 한다.

 

DI Annotation 방식의 장/단점

장점 단점
XML 문서 생성과 관리에 따른 수고를 덜어주고 개발 속도를 향상시킬 수 있 다. - 개발자 간 XML 설정 파일의 충돌을 최 소화 할 수 있다. 어플리케이션에 등록될 bean이 어떤 것 들이 있고, bean들 간의 의존관계가 어 떻게 되는지 한눈에 파악 할 수 없다.

Bean 등록 Annotation

Annotation 설명
@Component 객체를 나타내는 일반적인 타임으로<Bean>태그 역할
@Controller Presentation Layer Annotation 으로 View 에서 전달된 웹 요청과 응답을 처리하는 클래스에 사용
@Service Service Layer Annotation 으로 비즈니스 로직을 가진 클래스에 사용
@Repository Persistence Layer Annotation으로 영속성(파일,DB)을 가진 클래스에 사용

@Controller, @Service, @Repository는 특정한 객체의 역할에 대한 @Component의 구체화된 형태

 

Bean 의존관계 주입 Annotation

Annotation 설명
@Autowired 주로 변수 위에 설정하여 해당 타입 객체를 컨테이너에서 찾
아서 자동으로 주입
@Inject @Autowired와 동일한 기능을 지원
@Autowired는 Spring전용, @Inject는 Java전용
@Qualifier @Autowired와 같이 사용되며, 특정 객체의 이름을 이용하여
의존성을 주입할 때 사용
@Autowired를 하려는 상황에 해당 타입의 객체가 컨테이너에
2개 이상 존재하는 경우 어떤 객체를 주입 할 지 결정할 수 없
어 에러가 발생하는데 이때 해결이 가능
@Resource  @Autowired와 @Qualifier의 기능을 결합한 Annotation

<context:component-scan>태그

  • Spring 설정 파일에 애플리케이션에서 사용할 을 등록하지 않고 자동적으로 생성하기 위해 사용하는 태그
  • 특정 패키지 내부의 클래스들 중 @Component Annotation이 설정된 클래스들을 자동으로 객체 생성

<context:component-scan>사용예

<context:component-sacn base-package=“kr.or.iei.member”/>

 

*web.xml 서버 실행시 기본 설정들을 지정해놓은 파일

Comments