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