티스토리 뷰

웹 개발/SpringBoot

[String Boot] ANNOTATION 공부

스톤승현 2022. 11. 4. 14:16

@Controller

- view를 반환하기 위해 사용한다. 클래스 이름 위에 사용

 

@RequestMapping

- 요청이 왔을 때 어떤 컨트롤러가 호출 되어야 하는지 알려준다.

@RequestMapping(value = "/hi")

이렇게 매핑을 해주면 localhost:8080/hi로 url을 입력했을 경우 이것에 해당하는 메서드가 실행된다. 

 

속성 

String[ ] value 

- URL 패턴을 지정하는 속성이다. 

RequestMethod[ ] method

- RequestMethod는 HTTP 메서드를 정의한 ENUM이다.

@RequestMapping(value="/post", method=RequestMethod.GET) // url이 post인 요청 중 GET메서드인 경우 호출
@RequestMapping(value="/post", method=RequestMethod.POST) // url이 post인 요청 중 POST 메서드인 경우 호출

 

@Autowired

- 필요한 의존 객체의 "타입"에 해당하는 빈을 찾아 주입한다. 

생성자, setter, 필드 3가지의 경우에 Autowired를 사용할 수 있다. Autowired는 기본값이 true이기 때문에 의존성 주입을 할 대상을 찾지 못한다면 애플리케이션 구동에 실패한다. 

@Autowired
public MemoController(MemoService memoService) { // MemoContorller를 객체화를 하기 위해 생성자를 만든다
    this.memoService = memoService;
}

스프링에서 빈 인스턴스가 생성된 이후 @Autowired를 설정한 메서드가 자동으로 호출되고, 인스턴스가 자동으로 주입된다. 즉, 해당 변수 및 메서드에 스프링이 관리하는 Bean을 자동으로 매핑해주는 개념이다. 

 

@ResponseBody

- 자바 객체를 HTTP요청의 바디내용으로 매핑하여 클라이언트로 전송한다.  @ResponsBody가 붙은 파라미터가 있으면 HTTP요청의 미디어타입과 파라미터 타입을 먼저 확인한다. 

즉, http요청 body를 자바 객체로 전달받을 수 있다. 

@ResponseBody // 문자열 그대로 나온다.
public String postEmail(UserEntity user, EmailAuthEntity emailAuth) throws NoSuchAlgorithmException { // 엔티티에서 가져온다.
    Enum<?> result = this.memberService.sendEmailAuth(user, emailAuth);
    return result.name().toLowerCase();
}

 

@Transactional

- 메소드, 클래스, 인터페이스 위에 추가하여 사용하는 방식이 일반적이다.  @Transactional이 추가되면, 클래스에 Transaction 기능이 적용된 프록시 객체가 생성된다.

@Transactional
public Enum<? extends IResult> sendEmailAuth(UserEntity user, EmailAuthEntity emailAuth)
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함