Skip to content

Spring Annotation

hyunwoo9301 edited this page Jul 22, 2017 · 4 revisions

Annotation

  • 스프링은 classpath scanning을 통해 스테레오타입의 클래스들을 탐지, 자동적으로 후보 컴포넌트들을 등록한다.
  • 기본적으로 @Component, @Repository, @Service, @Controller의 클래스들만 후보 컴포넌트로 탐지된다.
  • component-scan 요소의 include-filter나 exclude-filter를 추가하여 필터를 커스터마이징 한다.

@Component

  • 스프링이 관리하는 컴포넌트를 나타내는 일반적인 스테레오 타입
  • 유즈케이스에 의해 구체화된 형태는 아래와 같다.
    • Repository - DAO에 적용, DB Exception Translation 기능, 영속성을 가지는 속성(DB,File)
    • Service - 비즈니스 로직
    • Controller - MVC 컨트롤러임을 명시 Spring MVC
    • RestContoller - REST 컨트롤러임을 명시 Spring REST
  • 개발자가 직접 생성한 Class의 경우 @Component 사용(@Bean 선언 불가능)
  • @Component는 선언된 클래스를 Bean으로 등록

@Bean

  • 개발자가 컨트롤 불가능한 외부 라이브러리들을 Bean으로 등록할 때 사용
  • @Bean은 반환하는 객체를 Bean으로 등록

@RequestMapping

  • HTTP 요청에 specific한 Handler 클래스나 메소드를 매핑

@RequestBody

  • Spring MVC에서 클라이언트에서 전송한 JSON/XML 데이터를 객체로 변환해서 받을 수 있는 기능
  • HTTP 요청 BODY를 객체로 변환

@ResponseBody

  • 객체를 JSON/XML 형식으로 변환해서 전송할 수 있는 기능
  • 객체를 HTTP 응답 BODY로 변환

@Valid, BindingResult

Clone this wiki locally