ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring boot] 어노테이션 정리
    SpringBoot 2022. 5. 17. 10:06
    반응형

    @Controller

    Spring MVC 컨트롤러를 표시하는데 사용된다.

    bean으로 등록되며 해당 클래스가 controller로 사용됨을 Spring Framework에 알린다.

     

     

    @RestController

    @Controller + @ResponseBody

    메소드의 반환 결과를 JSON형태로 반환한다.

    API와 view를 동시에 사용하는 경우에 사용. 

     

     

    @Service

    service로 사용되는 자바 클래스 파일에 사용된다.

    CRUD에 관한 함수들로 구성되어 있는 Repository에서 사용하고자 하는 함수들 

    2개 이상을 서비스관련 자바 클래스파일로 가져와 하나의 트랜잭션으로 묶어서 구성된다.

     

     

    @Repository

    DB에 접근하는 자바 클래스파일에 사용된다.

    DB의 쿼리문을 제어하는 함수들로 구성어 SQL 프레임워크와 밀접한 연관성을 갖고있다.

    @Repository가 작성되는 파일은 클래스파일이 아닌 인터페이스 파일로 작성된다.

    ex) public  interface TestRepository 

     

     

    @Autowired

    알아서 의존 객체(bean) 을 찾아 주입한다.

    2개 이상이면 오류를 발생! 주로 인터페이스 선언 시 사용 

     

     

    @ResponseBody

    VO객체를 JSON으로 바꿔서 HTTP BODY 에 담는 어노테이션

    메소드의 return 값을 http Response body 에 담는 역할을 한다. 

    Controller를 생성했을 때 return 값으로 반환하는 문자열의 이름의 view 페이지를 띄어준다.

     

     

    @RequestBody

    VO객체를 json으로 바꿔 http body 안에 담는다.

    HTTP 요청의 바디부분을 자바 객체로 받을 수 있게 해준다.

     

     

    @RequestParam

    HTTP GET 요청에 대해 request parameter 값이 자동으로 들어감.

    url 뒤에 붙는 파라미터값을 가져올 때 사용한다.

    ex) http://localhost:8080/test?index=1&page=2

    @RequestParam("실제값") String 변수이름 

     

     

    @Pathvariable

    HTTP 요청에 대해 매칭되는 request parameter 값이 자동으로 들어간다.

    url 에서 각 구분자에 들어오는 값을 처리해야 할 때 사용 

    REST API 에서 많이 사용 

    ex) http://localhost:8080/test/1

     

     

    @ModelAttribute

    HTTP BODY 내용과 HTTP 파라미터 값들을 getter, setter 생성자를 통해 주입한다.

    일반 변수의 경우 전달이 불가능하기 때문에 model 객체를 통해 전달해야 한다. 

    @ModelAttribute("파라미터명")

     

     

    @SessionAttribute

    모델 정보를 HTTP 세션에 저장해주는 어노테이션.

    이 어노테이션에 설정한 이름에 대한 해당하는 몯레 정보를 자동으로 세션에 넣어준다. 

     

     

    @Required 

    필수 프로터피를 설정, setter method에 사용한다.

     

     

    @ComponentScan

    특정 패키지 안의 클래스들을 스캔하고 Component Annotation이 있는 클래스에 대해 

    bean 인스턴스를 생성한다 

     

     

    @Qualifier

     @Autowired 어노테이션을 사용해 의존성 자동 주입 과정에서 bean 객체가 한개여야 하지만

      두개 이상의 bean일 경우 예외 발생한다. 이러한 문제를 해결하기 위해 @Qualifier 사용 

     

     

    @Configuration

    이 클래스 안에서 @Bean 어노테이션이 동봉된 메소드를 선언하면, 그 메소드를 통해 스프링 빈을 정의하고 생명주기를 설정하게 된다.

    자바 기반의 config가 싫다면 XML 쓰면 된다.

     

     

    @EnableAutoConfiguration

    빈들을 자동적으로 컨테이너에 등록하는 역할을 하는 어노테이션이다.

     

     

    @SpringBootApplication

    스프링 부트의 자동 설정, 스프링 bean 읽기와 생성을 모두 자동으로 설정된다.

    @SpringBootApplication이 쓴 위치부터 설정을 읽어가기 때문에 이 클래스는 항상 프로젝트 최상단에

    위치해야 한다. 

     

     

    @CookieValue

     CookieValue 어노테이션을 이용하여 쿠키를 전달 받을 수 있다.

    value 속성을 전달 받을 쿠키 이름을 지정한다.

     

     

    @Transaction

    메소드 내에서 예외가 발생하면 해당 메소드에 이루어진 모든 DB작업을 초기화한다.

    ex) 5개를 등록해야 하는데 4번째에서 Exception이 발생하면 앞에 저장된걸 모두 롤백한다

    (모든 처리가 정상일때만 커밋, 아니면 롤백)

     

    @Inject

    필드,생성자,메소드에서 사용한다. 타입이 같은 bean을 먼저 찾고 같은 타입의 bean 객체가 여러개 있으면

    다음 이름으로 찾는데 , 그래도 없다면 예외를 발생시킨다. 사용 방법은 @Autowired와 거의 유사하다.

     

    반응형

    댓글

Designed by Tistory.