-
[1-ch2 스프링] spring, lombok, 테스트 관련 어노테이션 알아보기 (@setter, @Autowired, @ContextConfiguration ,,)Back-End/Spring Legacy 2022. 8. 14. 13:32
코드에 사용된 어노테이션들
위의 어노테이션들에 대해 이야기 해볼 예정인데) 의존성주입 테스트에 대해 알아보고 싶은 분들은 아래 링크 클릭하시길!
아래 어노테이션이 사용된 코드 확인도 가능하다.
https://wonisdaily.tistory.com/45
Lombok 관련 어노테이션
Lombok을 간단히 설명해보면 컴파일 시 흔하게 코드를 작성하는 기능들을 완성해주는 라이브러리이다.
@Setter 어노테이션은 setter 메서드를 만들어주는 역할을 한다. 아래 그림처럼 @Setter 메서드가 작성된 것을 볼 수 있다.
@Data는 Lombok에서 가장 자주 사용되는 어노테이션이다. @ToString, @EqualsAndHashCode, @Getter/@Setter, @RequiredArgsConstructor를 모두 결합한 형태로 한 번에 자주 사용되는 모든 메서드들으 생성할 수 있다는 장점이 있다. 세부적인 설정이 필요 없는 경우라면 보통 @Data를 주로 이용한다.
Spring 관련
@Component는 해당 클래스가 스프링에서 객체로 만들어서 관리하는 대상임을 명시하는 어노테이션이다. 위의 게시글 예제의 경우도 @Component가 있는 클래스를 스프링이 읽어주도록 @ComponentScan을 통해서 지정되어 있으므로 해당 패키지에 있는 클래스들을 조사하면서 @Component가 존재하는 클래스들을 객체로 생성해 빈으로 관리하게 된다.
@Autowired는 스프링 내부에서 자신이 특정한 객체에 의존적이므로 자신에게 해당 타입의 빈을 주입해주라는 표시이다. 위의 예제 코드에서 Restaurant 객체는 Chef 타입의 객체가 필요하다는 것을 명시한다. 스프링은 @Autowired 어노테이션을 보고 스프링 내부에 관리되는 객체 중에 적당한 것이 있는지 확인하고, 자동으로 주입해준다.
테스트 관련 어노테이션
테스트 관련 중요한 어노테이션은 @ContextConfiguration이다. @ContextConfiguration은 스프링이 실행되면서 어떤 설정 정보를 읽어 들여야 하는지를 명시한다. 속성으로는 locationsn를 이용해서 문자열의 배열로 xml 설정 파일을 명시할 수도 있고, classes 속성으로 @Configuration이 적용된 클래스를 지정해줄 수 있다.
@Runwith는 테스트 시 필요한 클래스를 지정한다.
반응형'Back-End > Spring Legacy' 카테고리의 다른 글
[2-ch5 스프링 MVC 패턴] 기본구조와 로딩구조 (DispatcherServlet, listener, ViewResolver) (0) 2022.08.15 [1-ch4 스프링] MyBatis특징과 스프링 연동 (0) 2022.08.14 [1-ch3 스프링] Oracle Database 하기 (0) 2022.08.14 [1-ch2 스프링 특징] 의존성 주입 테스트 (POJO, AOP, DI) (0) 2022.08.11 [이클립스 스프링] Spring MVC Project 생성과 실행 초기 설정(path, tomcat, pom.xml, log4j2) (0) 2022.08.10