Annotation이란 무엇이고 구체적으로 어떤 것이 있는지 예시를 들어 설명해주실 수 있을까요?

코코·2023년 10월 24일
0

기술면접 준비

목록 보기
22/42

어노테이션이란?

어노테이션은 다른 프로그램에게 유용한 정보를 제공하기 위해 사용되는 것으로 주석과 같은 의미를 가진다.

  • 컴파일러에게 문법 에러를 체크하도록 정보를 제공한다.

  • 프로그램을 빌드할 때 코드를 자동으로 생성할 수 있도록 정보를 제공한다.

  • 런타임에 특정 기능을 실행하도록 정보를 제공한다.

  • 어노테이션은 @를 사용하여 작성하며, 해당 타겟에 대한 동작을 수행하는 프로그램 외에는 다른 프로그램에게 영향을 주지 않는다.

어노테이션의 종류

@ComponentScan

  • @Component와 @Service, @Repository, @Controller, @Configuration이 붙은 클래스 Bean들을 찾아서 Context에 bean등록을 해주는 Annotation이다.

@Component

  • @Component 은 개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 Annotation이다. 1개의 class 단위로 bean으로 등록할 때 설정한다.

@Bean

  • @Bean은 개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들려할 때 사용되는 Annotation이다. 1개의 외부 라이브러리로 부터 생성한 객체를 등록 시 사용 (new로 객체를 생성 후 직접 bean으로 등록할 때 사용)

@Autowired

  • 속성(field), setter method, constructor(생성자)에서 사용하며 Type에 따라 알아서 Bean을 주입 해준다. 무조건적인 객체에 대한 의존성을 주입시킨다.
  • 이 Annotation을 사용할 시, 스프링이 자동적으로 값을 할당한다. Controller 클래스에서 DAO나 Service에 관한 객체들을 주입 시킬 때 많이 사용한다.
    즉, Dependency Injection를 위한 곳에 사용된다.
profile
Just Do It

0개의 댓글