Annotation(@)은 사전적의미로 주석을 의미한다. @를 이용한 주석, JavaCode에 주석을 달아 특별한 의미를 부여한 것. 추가 적인 정보를 제공하는 메타데이터라고 할 수 있다.
XML이 가지는 설정 정보의 양이 많아져 시스템 전반에 영향을 주는 메타데이터는 XML로 설정하여 코드로 부터 독립적으로 분리되는것이 바람직하다.
컴파일러가 특정 오류를 억제하도록 지시하는 것과 같이 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공, 코드에 정보를 추가하는 정형화된 방법
Controller
- 프리젠테이션 레이어, 웹 어플리케이션에서 웹 요청과 응답을 처리하는 클래스에 사용한다.
- 웹 어플리케이션에서 컨트롤러 역할을 하는 클래스
Repository
- 퍼시스턴스 레이어, 영속성을 가지는 속성
- DAO같은 데이터베이스와 관련된 클래스
Service
- 서비스 레어이어, 비지니스 로직을 가진 클래스에 사용한다.
- 로직을 수행하는 클래스
Repository,Service,Controller는 특정한 기능에 대한 Component의 구체화된 형태이다.
RequestBody
- ResponseBody는 핸들러 메서드에 붙일 수 있는 어노테이션으로 HttpMessageConverter를 사용해 응답 본문 메시지로 보낼 때 사용 할 수 있다. 그러나 RestController를 사용하면 모든 메서드에 ResponseBody가 자동으로 붙는다.
Configuration
- 해당 클래스를 Configuration으로 등록한다.
EnableWebSecurity
- Spring Security를 활성화 시킵니다.
EnableGlobalMethodSecurity(prePostEnabled = true)
- Controller에서 특정 페이지에 특정 권한이 있는 유저만 접근을 허용할 경우 @PreAuthorize 어노테이션을 사용하는데, 해당 어노테이션에 대한 설정을 활성화시키는 어노테이션입니다.