@Component
개발자가 생성한 클래스를 빈으로 등록할 때 사용
@ComponentScan
@Component와 하위 어노테이션들을 찾아 스프링 컨테이너에 등록
@Configuration + @Bean
@Component 함유, 개발자가 제어가 불가능한 외부 라이브러리를 인스턴스화를 통해 빈으로 등록
@Autowired
스프링 컨테이너에 등록된 빈을 클래스의 타입에 맞게 주입
@Controller
@Component 함유, 스프링에게 DDD 계층구조의 프레젠테이션 계층인 컨트롤러 역할 명시
@Service
@Component 함유, 스프링에게 DDD 계층구조의 애플리케이션 계층인 서비스 역할 명시
@Repository
@Component 함유, 스프링에게 DDD 계층구조의 인프라스트럭쳐 계층인 레포지토리 역할 명시
@RequestMapping
value=""와 같이 사용하며 클라이언트의 요청과 value값이 일치하면 해당 클래스나 메소드가 실행된다.
클래스 단위에 사용하면 하위 메소드 모두에 적용되고, 하위 value값에 따라 특정 메소드가 실행된다.
@RequestParam
요청 URL의 쿼리스트링을 메소드의 파라미터로 받는다.
@PathVariable
요청 URL의 일부를 메소드의 파라미터로 받는다.
@ModelAttribue
요청 HTTP의 쿼리스트링이나 바디의 내용을 setter를 통해 객체와 데이터를 바인딩한다.
form-data 형태를 요구하기 때문에 json 데이터는 바인딩이 불가하다.
@RequestBody
요청 HTTP의 바디의 데이터를 메소드의 파라미터와 매칭시켜 JSON, XML 등의 데이터를 ObjectMapper를 통해 객체로 변환한다.