@RestController
@Controller
와 @ResponseBody
를 합친 어노테이션으로 메소드의 반환 결과를 JSON 형태로 반환해줍니다.
@RequestMapping
- 요청 URL을 어떤 메소드가 처리할 것인지 매핑해주는 어노테이션입니다.
@Bean
- 스프링 컨테이너에 Bean을 등록하도록 해주는 어노테이션입니다.
@Bean
- 개발자가 직접 제어 불가능한 외부 라이브러리를 Bean으로 등록하기 위해 사용됩니다.
@Component
- 개발자가 직접 작성한 클래스를 Bean으로 등록하기 위해 사용됩니다.
@Autowired
- 생성자나 setter 메소드 없이 의존성을 주입해서 자동으로 객체를 생성해주는 어노테이션입니다.
@Configuration
- 해당 클래스가 환경 설정과 관련된 파일이라는 것을 알려주는 어노테이션입니다.
- 해당 클래스에 정의된
@Bean
이 적용된 메소드는 @Autowired
를 통해서 부를 수 있습니다.
@ConfigurationProperties
- 프로퍼티 파일을 읽어와서 해당 값들을 사용할 수 있게 만들어줍니다.
@Transactional
- 해당 클래스 또는 메소드에 트랜잭션을 적용시켜 줍니다.
- DB에 액세스하는 여러 연산들을 하나의 트랜잭션으로 처리하여 오류가 발생하면 자동으로 롤백 시켜 줍니다.
@Controller
- Presentation Layer
- 요청과 응답을 처리해주는 클래스에 사용됩니다.
@Service
- Service Layer
- 비즈니스 로직을 담당하는 클래스에 사용됩니다.
@Repository
- Persistence Layer
- DB에 액세스하는 클래스에 사용됩니다.
@ExceptionHandler
- 컨트롤러 단에서 발생하는 예외를 잡아서 처리해주는 메소드에 사용됩니다.
@ControllerAdvice
- 전역에서 발생하는 예외들을 잡아서 처리해주는 클래스에 사용됩니다.