Annotation

왕감자·2024년 8월 23일

KB IT's Your Life

목록 보기
145/177

Spring Annotation

@Autowired

  • 의존성 자동 주입
  • java의 reflection 기능을 사용함 - private 멤버여도 상관X
  • Spring Context에 등록된 Bean이어야 함

@Controller

  • Spring context에 등록되는 객체임을 선언
    • Spring에게 이 클래스를 빈으로 등록해달라고 함
    • Spring Context가 Bean 생성 ⇨ JavaBean으로 등록됨
  • 웹 요청을 처리하기 위해 설계된 컨트롤러 클래스에서 사용
  • 스프링 MVC 컨트롤러 역할을 명시적으로 나타냄
  • @Component 포함

@Component

  • JavaBean으로 등록됨
  • 컨트롤러 외 모든 범용 컴포넌트에서 사용
  • 단순히 스프링 빈으로 등록할 일반 클래스를 나타냄
  • 모든 종류의 스프링 빈 클래스에서 사용할 수 있는 범용 어노테이션
  • 스프링의 Component Scan에 의해 자동으로 탐색 됨
    • RootConfig ➞ @ComponentScan(basePackages = {"패키지"})
    • 패키지 안(하위 패키지 포함)에 있는 @Component 클래스만 스캔함

@RequestMapping

  • 수용할 HTTP method 설정 (GET, POST, PUT, DELETE 등)
  • @RequestMapping(value="/basic", method={RequestMethod.GET, RequestMethod.POST})
    • 설정하지 않으면 모두 허용


Lombok

@Data

  • 기본 메서드를 자동으로 생성
    • 보일러플레이트 코드를 줄이고 개발 생산성을 높임
  • Getter / Setter
  • toString()
  • equals()
  • hashCode()
  • RequiredArgsConstructor : final 또는 @NonNull이 붙은 필드들을 초기화하는 생성자를 자동으로 생성
  • @AllArgsConstructor가 있으면 기본 생성자를 생성X

@Slf4j

  • log라는 이름의 로거(Logger) 객체를 자동으로 생성 - 멤버 필드 자동 생성
  • SLF4J를 통해 추상화된 방식으로 다양한 로깅 프레임워크를 사용
  • 유연한 로깅 구현체 선택이 필요하거나, SLF4J의 추상화된 로깅을 선호할 경우 적합
  • 로깅 구현체를 쉽게 교체할 수 있어 유지보수성이 향상

@Log4j

  • log라는 이름의 로거(Logger) 객체를 자동으로 생성 - 멤버 필드 자동 생성
  • Log4j 로깅 프레임워크를 직접 사용

@RequiredArgsConstructor

  • 필수 인자 생성자(Constructor)를 자동으로 생성
    • final 필드
    • @NonNull 어노테이션이 붙은 필드

@AllArgsConstructor

  • 클래스의 모든 필드를 파라미터로 받는 생성자를 자동으로 생성

@NoArgsConstructor

  • 인자 없는 기본 생성자를 자동으로 생성

단위테스트 어노테이션

@ExtendWith(SpringExtension.class) //Spring Test다
@ContextConfiguration(classes = {RootConfig.class}) //설정파일
@Log4j //로그 출력을 위함, log 멤버 변수 자동 생성

0개의 댓글