본문 바로가기
프로그래밍 공부/Spring-Boot

[lesson] Spring - @ [어노테이션]

by Luna_lua 2022. 2. 4.
반응형

<REST>

@RestController

클래스 자체를 REST방식으로 사용하겠다고 알리는 어노테이션

 

@ResponseBody

일반 클래스에서 REST방식의 메소드를 사용할때 알리는 어노테이션


@PathVariable("URI의 변수명")

URI의 변수명과 메소드의 매개변수를 매핑시켜주는 어노테이션


<CONTROLLER>

@RequestMapping("/OOO/*")

웹 브라우저의 요청중에 경로가 replies로 시작하는 요청페이지가 있다면 이 클래스를 이용해라 라고 알리는 어노테이션

이 어노테이션을 사용해야 핸들러 맵핑이 찾을 수 있다

또한 Mapping방식이 2개 이상 (PUT, PATCH 등) 사용할때
@RequestMapping(method={RequestMethod.PUT, RequestMethod.PATCH})로 사용할 수 있다.

@GetMapping, @PostMapping, @PatchMapping, @PutMapping, @DeleteMapping

보내는 전달 method방식에 따른 메소드 및 페이징 처리할수 있도록 알려주는 어노테이션

※ 데이터를 웹브라우저로 전달할때는 Model에 담아서 전달하고, thymeleaf를 사용해서 웹페이지에 표현해준다.

@Controller

컨트롤러의 기능을 가지고 있다고 알리는 어노테이션

<BASIC>

@Slf4j

log로 출력하기 위해 알리는 어노테이션 

info, warn, error로 나눌수 있으나 주로 info를 사용한다.

@RequireArgsConstructor

주입방식 중 하나로 생성자를 이용하여 주입한다고 알리는 어노테이션

주입방식 중 여기에서만 final을 붙여서 사용할수 있다.

@Autowired

주입방식 중 하나로 필드에서 객체를 주입한다.

중간중간 바뀔수 있기 때문에 접근권한자에 final을 붙이면 안되며, 의존관계가 추상적이여서 구분이 어려우니 최대한 지

양해서 사용

@Setter

주입방식 중 하나로 객체의 세터메소드를 이용하여 주입한다.

Setter 메소드에 @Autowired annotation을 선언하여 주입받는 방법

Setter는 개발자가 변경이 가능하기 때문에 final을 붙일 수 없다.


 

@MapperScan[s]

@Mapper

mapperscan에서 인식을 하려면 mapper라는게 있어야 한다.

@Data

@Component

 

 

@Qualifier("") //여러 인터페이스중에 특정 인터페이스를 지정할때

각 주입을 해야할때 스프링컨테이너가 어떤걸 주입할지 모를때가 있다

예) Test와 Test를 상속받은 Test1, Test2가 있을때 

Test test를 주입하면 Test, Test1, Test2가 모두 주입이 가능하기 때문에 스프링 컨테이너는 무엇을 주입할지 모른다

이때 이 어노테이션을 사용하여 @Qualifier("test1")을 사용하여 주입하고,

test1이 무엇인지 알기 위해 Test1에 @Component를 사용하고, 이 클래스가 test1이라는걸 지정한다.

반응형