어노테이션 | 설명 |
---|---|
@Component |
일반적인 컴포넌트 클래스 등록 |
@Controller |
웹 요청을 처리하는 컨트롤러 등록 (Spring MVC 전용) |
@Service |
비즈니스 로직 계층에 사용 |
@Repository |
DAO/DB 계층에 사용 (예외를 Spring DataAccessException으로 변환) |
@Configuration |
설정 클래스를 나타냄 |
@Bean |
개발자가 직접 객체를 생성해서 등록할 때 사용 |
📌 @Component
, @Service
, @Repository
, @Controller
는 결국 모두 스프링 빈으로 등록되며, 내부적으로는 @Component
기반임.
어노테이션 | 설명 |
---|---|
@Autowired |
타입 기준으로 빈을 주입 (필드, 생성자, 메서드에서 사용 가능) |
@Inject |
자바 표준 어노테이션 (javax) – @Autowired 와 비슷 |
@Qualifier |
같은 타입의 빈이 여러 개일 때 구분해서 주입 |
@Value |
프로퍼티 값이나 환경 변수 주입 |
@RequiredArgsConstructor |
Lombok 어노테이션, final 필드에 대해 생성자 자동 생성 |
어노테이션 | 설명 |
---|---|
@RequestMapping |
URL을 컨트롤러 메서드에 매핑 (GET , POST , 등 모두 지원) |
@GetMapping , @PostMapping , @PutMapping , @DeleteMapping |
HTTP 메서드 전용 단축 어노테이션 |
@PathVariable |
URL 경로 변수 받기 (/user/{id} → @PathVariable int id ) |
@RequestParam |
쿼리 파라미터 받기 (?name=abc → @RequestParam String name ) |
@RequestBody |
JSON 요청 본문을 객체로 변환해서 받음 |
@ResponseBody |
객체를 JSON 형태로 반환 |
@RestController |
@Controller + @ResponseBody 합쳐진 것 (REST API 전용) |
어노테이션 | 설명 |
---|---|
@Transactional |
트랜잭션 처리 – 실패 시 롤백 |
@Slf4j |
Lombok 제공 – 로그 객체 자동 생성 (log.info() 등 사용 가능) |
@ExceptionHandler |
예외 발생 시 실행될 메서드 지정 |
@ControllerAdvice |
전역 예외 처리기 또는 공통 로직 처리용 |
@CrossOrigin |
CORS 허용 설정 |