today_is

[ spring ] 어노테이션 문법정리 본문

spring

[ spring ] 어노테이션 문법정리

ye_rang 2024. 1. 2. 09:17

스프링에서 자주 등장하는 어노테이션(@)입니다.

 

생소한 어노테이션이 많아서 정리해보았습니다 !!

 

 

 

 

스프링 빈 등록

@Controller 지정한 클래스를 스프링 빈으로 등록하고, MVC구조의 컨트롤러 역할을 수행하도록 한다
@Service 지정한 클래스를 스프링 빈으로 등록하고, MVC구조의 서비스 역할을 수행하도록 한다
@Repository 지정한 클래스를 스프링 빈으로 등록하고, MVC구조의 DAO 역할을 수행하도록 한다
해당 클래스에서 발생하는 예외는 SQLException 형식으로 변경하여 throws 한다
@Component 지정한 클래스를 스프링 빈으로 등록한다. 주로 특정 요소에 대한 작업을 전담하는 모듈로 구성한다.
@ControllerAdvice 지정한 클래스를 스프링 빈으로 등록하고, 컨트롤러에서 발생하는 예외를 모아서 처리하도록 한다
@RestController 지정한 클래스를 스프링 빈으로 등록하고, 컨트롤러이면서 내부 메서드는 @ResponseBody를 적용받게 한다

 

 

 

참조 및 연결

@Autowired 필드, setter, 생성자에 붙어서 스프링 빈 간의 의존관계를 자동으로 연결한다
타입(자료형)을 우선으로 탐색하고, 타입이 일치하는 요소가 있다면 id로 판별할 수 있다
@Value 특정 경로의 자원을 Resource 타입으로 받아서 파일을 참조할 수 있도록 한다

 

 

 

메서드 관련

@RequestMapping value에는 요청 주소를 지정하고, method에는 요청 메서드를 지정한다
일치하는 요청이 발생하면, 메서드를 호출한다
컨트롤러 클래스에 지정하면, 해당 컨트롤러 하위 모든 메서드가 공통 주소를 적용받는다
문자열만 작성하면 value를 지정하는 것이 된다
@GetMapping @RequestMapping(value="", method=RequestMethod.GET) 과 같다 (스프링 4.1.0 이상에서만 가능)
@PostMapping @RequestMapping(value="", method=RequestMethod.POST) 과 같다 (스프링 4.1.0 이상에서만 가능)

 

 

 

파라미터 관련

@RequestParam 컨트롤러 메서드에서 파라미터를 전달받을 때 사용한다
보통 생략가능하지만, HashMap으로 파라미터들을 받을때는 반드시 명시해야 한다
@PathVariable @RequestMapping 상의 특정 구간 주소를 파라미터로 치환해서 받을 수 있다
@RequestBody 파라미터 앞에 붙어서 JSON형식의 파라미터를 객체형태로 변환하여 받도록 한다
@ResponseBody 메서드에 붙어서 반환형이 viewName으로 사용되지 않고, 내용 그대로 반환하도록 한다
@CrossOrigin 컨트롤러 클래스 혹은 내부 메서드에 붙어서 CORS에 대한 정책을 설정한다

 

 

 

쿼리문 관련

@Select 마이바티스 함수에서 select 쿼리를 전달받아 executeQuery()를 수행하고, 결과를 반환한다
@Insert 마이바티스 함수에서 insert 쿼리를 전달받아 executeUpdate()를 수행하고, 정수를 반환한다
@Update 마이바티스 함수에서 update 쿼리를 전달받아 executeUpdate()를 수행하고, 정수를 반환한다
@Delete 마이바티스 함수에서 delete 쿼리를 전달받아 executeUpdate()를 수행하고, 정수를 반환한다