STUDY_NOTE/spring & springboot

스프링 @어노테이션 정리 Spring boot

kh201 2020. 12. 28. 11:33

 

 

어노테이션

의미 

 @Controller

Presentation Layer
요청과 응답을 처리해주는 클래스에 사용

 @Service

Service Layer
비즈니스 로직을 담당하는 클래스에 사용

 @Repository

Persistence Layer
DB에 액세스하는 클래스에 사용

@RestController

@Controller  @ResponseBody 를 합친 어노테이션으로 메소드의 반환 결과를 JSON 형태로 반환함

@ResponseBody

자바 객체를 HTTP 요청의 body 내용으로 매핑하는 역할을 함
@ResponseBody를 붙게되어 HTTP 응답데이터(body)에 자바 객체가 매핑되어 전달됨
※컨트롤러에 @ResponseBody와 @ResponseBody 어노테이션을 추가해주면, JSON이나 key/value 방식 xml등으로 송수신 가능함

@RequestBody

HTTP 요청의 body 내용을 자바 객체로 매핑하는 역할을 함

@RequestMapping

요청 URL을 어떤 메소드가 처리할 것인지 매핑해주는 어노테이션

@Autowired

생성자나 setter 메소드 없이 의존성을 주입해서 자동으로 객체를 생성해주는 어노테이션

@Transactional

해당 클래스 또는 메소드에 트랜잭션을 적용시킴
DB에 액세스하는 여러 연산들을 하나의 트랜잭션으로 처리하여 오류가 발생하면 자동으로 롤백 

@Configuration

해당 클래스가 환경 설정과 관련된 파일이라는 것을 알려주는 어노테이션
해당 클래스에 정의된 @Bean이 적용된 메소드는 @Autowired를 통해서 부를 수 있음

@Bean

스프링 컨테이너에 Bean을 등록하도록 해주는 어노테이션
@Bean : 개발자가 직접 제어 불가능한 외부 라이브러리를 Bean으로 등록하기 위해 사용@Component :  개발자가 직접 작성한 클래스를 Bean으로 등록하기 위해 사용

@ConfigurationProperties

프로퍼티 파일을 읽어와서 해당 값들을 사용할 수 있게 만들어줌

@ExceptionHandler

컨트롤러 단에서 발생하는 예외를 잡아서 처리해주는 메소드에 사용

@ControllerAdvice

전역에서 발생하는 예외들을 잡아서 처리해주는 클래스에 사용

참고 : velog.io/@dnjscksdn98/Spring-Spring-Boot-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98-%EC%A0%95%EB%A6%AC