@Component를 구현한 @Service, @Repository, @Controller에 대해서 @Component의 차이는 무엇인지 왜 @Component만 사용하면 안되는지 의문점이 생겨 알아보았는데요.
@Repository
Spring에서 지원하지 않은 Exception을 Spring Exception으로 전환하기 위해서는 @Repository 애노테이션을 사용해야합니다. @Repository 애노테이션이 적용된 메소드에서 Exception이 발생할 경우 UnChecked Exception인 DataAccessException으로 전환시킨다고 합니다.
ex) 선언적 트랜잭션을 적용한 메소드에서 DB관련된 오류가 발생해도 롤백이 가능한 이유
CheckedException, UnCheckedException 차이
CheckedException | UnCheckedException | |
예외감지 | 컴파일 시점 | 런타임 시점 |
롤백여부 | 롤백하지 않고 커밋 | 롤백 |
Exception 종류 | IOException, SQLException | OutOfMemoryException |
@Controller
Spring MVC에서 Controller 애노테이션은 Servlet과 동일한 역할을 하지만 서블릿 위에 구현된 라이브러리입니다.
다양한 기능을 제공하며 대표적인 기능으로는 @RequestMapping 애노테이션을 이용한 여러 handler method 제공입니다.
@Service
@Service 애노테이션은 아직까지 @Component와 차이가 없습니다.
출저
'Spring' 카테고리의 다른 글
Spring log4j 라이브러리란? (0) | 2021.03.25 |
---|---|
Springframework version 마이그레이션하는 방법 (0) | 2021.03.25 |
SELECT 문으로 데이터 랜덤으로 가져올 경우에 대한 성능 테스트 (0) | 2020.12.05 |
Mybatis에서 대량의 데이터를 넣을 때 bulk insert를 사용하자 (0) | 2020.12.05 |
멀티 스레드 환경에서 동일 데이터에 대해서 업데이트 시 고려해야 할 사항 (0) | 2020.12.05 |