※ 어노테이션 모음

khs·2022년 2월 14일
0

Java Spring Boot

목록 보기
14/34

● @Controller, @RequestMapping

  • @controller: 스프링부트는 IoC컨테이너를 통해서 Bean을 다루게 되는데 @controller 라는 어노테이션을 달아주게 되면 이 클래스, 객체가 Bean으로써 IoC의 관리를 받게 된다.

  • @RequestMapping : 어떠한 경로에 어떤 함수가 들어갈지를 결정하는 어노테이션




● @GetMapping, @PathVariable

  • @GetMapping : RequestMethod가 get으로 고정되어 있다는 점 말고는 @RequestMapping과 유사하다.

  • @PathVariable :URI 상에서 '{ }' 로 감싸여있는 부분과 동일한 변수명을 사용하는 방법이다. 이때 여러 개의 인자를 정의하는 것도 가능하다.




● @RequestParam

  • @RequestParam: url에서 쿼리의 내용을 가져올 수 있다. require은 매개변수가 필수인지의 여부를, defaultValue는 매개변수가 없을 때 부여되는 기본값을 뜻한다.
    기본형식 : @RequestParam("가져올 데이터의 이름") [데이터타입][가져온데이터를 담을 변수]




● @RestController

  • @RestController : 주로 Json 형태로 객체 데이터를 반환하기 위해 사용 (@Controller는 주로 View를 반환하기 위해 사용)

    @Controller는 @RestController보다 더 넓은 범위에서 사용되는 어노테이션이기 때문에 @Controller에서는 작동안하던 것이 @RestController에서는 잘 작동을 한다. (@ResponseBody가 없어도)




● @ResponseBody, @RequestBody, @ResponseStatus

  • @ResponseBody : 자바객체를 HTTP요청의 바디내용으로 매핑하여 클라이언트로 전송한다.
    -> 어떤 오브젝트의 데이터를 바디에 포함시켜서 전송하고 싶을 때 @ResponseBody가 없으면 응답으로 돌아가게 되는 String값이 ViewResolver에 들어가게 되면서 어떠한 html을 가져갈지의 과정으로 들어가게 되는데 @ResponseBody가 있으면 view를 찾는 과정 없이 객체 자체 데이터를 바디로써 사용하게 된다.

  • @RequestBody - HTTP 요청의 body 내용을 전달받아 자바 객체로 매핑하는 역할을 한다. (예를 들어 게시판 사이트에서 글을 create하는 경우 작성된 폼을 @RequestBody를 이용해서 받는다.)

  • @ResponseStatus - 사용자에게 원하는 response code와 reason을 반환해주는 어노테이션이다. value에 상태 코드를 정하면(위 코드에는 NO_CONTENT로 지정 - CREATE 등 많다.), 그 응답의 상태 코드를 반환할 수 있다. 아무것도 정하지 않으면 200 OK가 반환된다.

    정상적으로 처리 되었을 때 status를 정의할 수 있다. 그 외 처리 중 문제가 생기면 예외를 상황에 맞게 터트리는 방식이다.




● @DeleteMapping

  • @DeleteMapping을 사용하는 것이 표준이지만 @GetMapping을 사용해도 된다. (검색해봤을 때 삭제기능을 하는 메소드임을 명시해줄 뿐 GetMapping과 차이가 없는 것 같다.)




● @PutMapping

  • @PutMapping : 요청 페이로드를 사용해 새로운 리소스를 생성하거나, 대상 리소스를 나타내는 데이터를 대체함.
    즉 새로운 걸 만들 때 PostMapping, 수정을 할 때는 Putmapping




● @Autowired

  • @Autowired : @Autowired는 스프링 DI(Dependency Injection)에서 사용되는 어노테이션
    스프링에서 빈 인스턴스가 생성된 이후 @Autowired를 설정한 메서드가 자동으로 호출되고, 인스턴스가 자동으로 주입된다.
    @Autowired는 주로 타입(Type)을 이용해 주입하는데 동일한 Bean 타입의 객체가 여러 개 있을 경우, Bean을 찾기 위해 @Qualifier 어노테이션을 같이 사용해야 한다. (우선 순위가 높은 구현체를 연결한다.)
profile
권혁상입니다. 행복코딩^_^

0개의 댓글