Annotation 정리중

Spring

  • 출처 : http://ebom.tistory.com/entry/Annotation-%EC%A0%95%EB%A6%AC
  • @Controller: 스프링의 컨트롤러 객체임을 명시하는 annotation.(클래스에서 사용)
  • @Repository: DAO 객체(클래스에서 사용)
  • @Service: 서비스 객체(클래스에서 사용)
  • @RequestMapping: 특정 URI에 매칭되는 클래스 또는 메소드 임을 명시하는 annotation(클래스와 메소드에서 사용)
  • @RequestParam: request에서 특정한 파라미터의 값을 찾아낼 때 사용하는 annotation(파라미터에서 사용)
  • @RequestHeader: request에서 특정 HTTP 헤더 정보 추출 시에 사용하는 annotation(파라미터에서 사용)
  • @PathVariable: 현재의 URI에서 원하는 정보를 추출 시에 사용하는 annotation(파라미터에서 사용)
  • @CookieValue: 현재 사용자의 쿠키가 존재하면 쿠키의 이름을 이용하여 쿠키의 값을 추출하는 annotation(파라미터에서 사용)
  • @ModelAttribute: 자동으로 해당 개체를 뷰까지 전달하도록 만드는 annotation(메소드, 파라미터에서 사용)
  • @SessionAttribute: 세션 상에서 모델의 정보를 유지하고 싶은 경우에 사용(클래스에서 사용)
  • @InitBinder: 파라미터를 수집해서 객체로 만들경우에 커스터마이징(메소드에서 사용)
  • @ResponseBody: 리턴 타입이 HTTP의 응답 메시지로 전송(메소드, 리턴타입에서 사용)
  • @RequestBody: request 문자열이 그대로 파라미터로 전달(파라미터에서 사용)
  • @Required : 메소드를 통해 값을 주도록 강요함. (property 안적어줬을 때 에러)
    • @Required 사용하려면 <bean class=”org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor”/> 위의 형태는 너무 길어서 context 사용(동일한 효과)
    • <context:annotation-config />
  • @Autowired : 내부적으로 Setter가 생성. Bean의 자동 삽입을 위해 사용. (type 으로 매핑)
    • @Autowired를 사용하려면
      <bean class=”org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor”/> 위의 형태는 너무 길어서 context 사용(동일한 효과) 아래의 한줄을 적어주고 객체 생성에만 충실하면 된다!
    • <context:annotation-config />
  • @Qualifier : @Autowired를 name 으로 매핑하고 싶을 때 함께 사용.
  • @Resource : Bean의 자동 삽입을 위해 사용. (name 으로 매핑)
  • @Scope : 스프링에서 관리하는 Bean은 Singleton 이 디폴트.
    • Singleton : 싱글톤으로 객체를 한 개만 생성
    • Prototype : 사용자 요청별로 별개의 객체를 생성
  • @Component : 객체 생성. Bean 생성.
  • @Component을 사용하려면 <context:component-scan base-package=”패키지명” /> context:component-scan 만 있으면 context:annotation-config 도 필요 없다!
  • @Service : 해당 클래스가 Service Bean 임을 지정.
  • @Repository : 해당 클래스가 Repository Bean 임을 지정. (DB 관련 내용은 Repository 사용)
  • @PostConstruct : 생성자 수행 후 수행. JDK가 지원.
  • @PreDestroy : 응용 프로그램 종료 직전에 수행되어 마무리 작업. JDK가 지원. 내부적으로 수행되어 콘솔에 출력 안됨.
  • @Value : 초기치로 부여할 때 사용. 사용 시 @Autowired를 생성자에 써줘야 함. 스프링에서는 기본적으로 클래스 선언부 위에 @Component가 붙어 있으면 스프링 빈으로 생성. 그러나 보통 실무인 경우에 다음과 같이 한다.
    • Controller 클래스 에는 @Controller
    • Service 클래스 에는 @Service
    • DAO 클래스 에는 @Repository

Lombok

  • 출처 : https://blogs.idincu.com/dev/?p=17
  • @Getter / @Setter : Getter와 Setter 함수를 생성합니다.
  • @EqualsAndHashCode : equals(), hashCode() 메소드의 코드를 생성합니다.
  • @ToString : toString() 메소드를 대신할 수 있습니다.
  • @Log : private static final Logger log 가 추가됩니다.
  • @Data : 모든 필드에 대한 getter, setter와 toString, equals, hashcode, final로 지정됐거나 @NonNull로 명시된 필드에 대한 값을 받는 생성자 메소드 코드를 생성합니다.
  • @AllArgsConstructor : 모든 필드에 대한 값을 받는 생성자를 생성합니다.

JPA

기타

Notice

  • 이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스
  • 저작권과 관련된 파일요청 및 작업요청을 받지 않습니다.
  • 댓글에 대한 답변은 늦을 수도 있습니다.
  • 댓글 남기기

    이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다