본문 바로가기

Spring

Spring @Annotation 종류와 이해

학습하며 추가적으로 업데이트 예정입니다.

 

  • @Runwith

    • JUnit 프레임워크의 테스트 실행방법을 확장 역할
    • @Runwith에 Runner클래스 설정시 JUnit의 내장된 runner대신 설정한 SpringJUnit4ClassRunner를 실행
  • @ContextConfiguration

    • 지정된 클래스나 문자열을 이용해 필요한 객체들을 스프링내 객체로 등록 (RootConfig의 패키지 경로내의 클래스 Bean 등록)
  • @Log4j

    • Lombok을 이용해 로그를 기록하는 Logger 변수 생성
  • @Autowired

    • 해당 인스턴스 변수에 스프링으로부터 자동으로 Bean을 주입해달라는 표시
  • @Test

    • JUnit에서 테스트 대상을 표시
  • @Component

    • Component는 스프링에게 해당 클래스가 관리해야할 대상임을 표시
  • @Setter

    • Set( ) 메소드를 컴파일시 생성
  • @Getter

    • Get( ) 메소드를 컴파일시 생성
  • @ModelAttribute

    • view에서 전달해주는 파라미터를 클래스의 멤버변수로 binding 해주는 어노테이션
  • @GetMapping

    • RequestMapping(Method=RequestMethod.GET)과 동일
  • @PostMapping

    • RequestMapping(Method=RequestMethod.POST)과 동일
  • @SessionAttributes

    • @SessionAttributes("test") 라는 어노테이션을 선언했을시 key값인 test로 세션에 저장
  • @RequestBody

    • 요청이 들어온 데이터(Json, XML)를 클래스나 model로 매핑
  • @ReqeustParam

    • request의 파라미터를 가져오는 기능을 하며 메소드내에 변수로 활용
  • @ResponseBody

    • View(html,jsp)가 아닌 JSON 형식의 데이터값을 응답할 때 사용하는 것으로 response Body에 형식이 노출
    • 객체를 return시 json 라이브러리에 의해 문자열로 변환
  • @PathVariable

    • 메소드 파라미터 앞에 사용하며 해당 URL에 { } 특정 파라미터를 변수로 활용 가능
  • @Transactional

    • 데이터베이스 트랜잭션 설정 어노테이션 (AutoCommit, rollback, commit 등)
    • DB의 접근이 하나라도 실패시 rollback
    • 비지니스 로직과 트랜잭션 관리는 모두 Service에 하기때문에 Service 메소드는 @Transactional를 사용
  • @Cacheable

    • 메소드 앞에 지정하여 사용하며 메소드를 최초 호출시 캐시에 적재하고 추후 동일한 요청이 들어올 시 캐시의 결과를 리턴

      • 메소드의 호출 횟수를 줄여주는 어노테이션
  • @RestController

    • @Controller + @ResponseBody = @RestController
    • view가 필요없는 API에 지원 (Spring4.0.1 이후)
    • @RequestMapping메소드가 @ResponseBody 의미를 가정한다
    • data(json,xml) return 시 사용

 

 

롬복의 어노테이션

  • @AllArgsConstructor

    • AllArgsConstructor는 모든 필드를 파라미터로 가지는 생성자를 생성
  • @NoArgsConstructor

    • 파라미터가 없는 기본 생성자를 생성
  • @RequiredArgsConstructor

    • final, @NonNull 인 필드값만 파라미터로 받는 생성자를 생성
  • @EqualsAndHashCode

    • equals( )메소드와 hashCode( )메소드를 오버라이드
  • @Data

    • @toString, @getter/setter, @RequiredArgsConstructor 등 모두 사용한것과 같은 기능

     

'Spring' 카테고리의 다른 글

스프링 MVC 기본구조  (0) 2019.05.01
mybatis와 스프링 연동 예제  (0) 2019.04.30
IntelliJ로 스프링 gradle 프로젝트 설정  (0) 2019.04.28
Spring 의 특징과 의존성  (0) 2019.04.25