[꼼꼼한 개발자] 꼼코더
09. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - Lombok 관련, 테스트 관련, 스프링 어노테이션들 본문
Spring/코드로 배우는 스프링 웹 프로젝트
09. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - Lombok 관련, 테스트 관련, 스프링 어노테이션들
꼼코더 2022. 12. 26. 20:39반응형
✍🏻 Lombok 관련, 테스트 관련, 스프링 어노테이션들
🌶 Lombok 관련 어노테이션
- @Setter
- @Data
- @Log4j
🍃 Spring 관련 어노테이션
- @Component
- @Aurowired
👨🏻💻 테스트 관련 어노테이션
- @RunWith
- @ContextConfiguration
- @Test
💬 어노테이션 사용 예재(참고 자료)
🌶 Lombok 관련 어노테이션
- Lombok은 간단하게 말하면 컴파일시 흔하게 동작하는 기능들을 완성해주는 라이브러리이다.
✍🏻 @Setters 어노테이션
- @Setters 어노테이션은 setter 메서드를 만들어 주는 역할.
- Restaurant 클래스를 자세히 보면 아래와 같이 setter 메서드가 작성된 것을 볼 수 있다.
🔎 Setters의 속성
value
- 접근 제한 속성을 의미
- 기본값은 lombok.AccessLevel.PUBLIC
onMethod
- setter 메서드 생성 시 메서드의 추가할 어노테이션을 지정(예제는 @Autowired 사용)
- JDK 버전에 따라 ‘_’ 표기가 사용된다.
onParam
- setter 메서드의 파라미터에 어노테이션을 사용하는 경우에 적용
✍🏻 @Data 어노테이션
- Loombok에서 가장 자주 사용되는 어노테이션이다.
- @ToString, @EqualsAndHashCode, @Getter/Setter, @RequiredArgsConstructor를 모두 결합한 형태로 한 번에 자주 사용되는 모든 메서드를 생성할 수 있다는 장점이 있다.
- 만일 세부적인 설정이 필요 없다면 @Data를 주로 사용한다.
✍🏻 @Log4j
- 로그 객체를 생성
- Log4j가 존재한다면 설정을 하고, 존재하지 않다면 @Log로 사용할 수 있다(그림 참고).
- @Log를 클래스 쪽에 붙여주면 내부적을 static final로 Logger 객체가 생성되므로 개발 시 별도의 로그를 설정할 필요 없이 필요한 코드를 만들어 낼 수 있다.
- STS 등을 이용해서 ‘Spring Legacy Project’로 생성한 경우에는 기본적으로 log4j가 설정이 되어있어 추가적인 설정 없이 @Log4j만으로 로그 객체를 준비할 수 있다.
🍃Spring 관련 어노테이션
✍🏻 @Component
- 해당 클래스가 스프링에서 객체로 만들어서 관리하는 대상임을 명시하는 어노테이션
- @Component가 존재하는 클래스들은 객체로 생성해서 빈으로 관리하게 된다.
✍🏻 @Aurowired
- 스프링 내부에서 ‘나는 특정한 객체에 의존적이니 나에게 해당 타입의 빈을 주입해줘’ 라는 표시.
- 스프링은 @Aurowired 어노테이션을 보고 스프링 내부에서 관리되는 객체(들) 중에 적당한 것이 있는지 확인하고, 자동으로 주입한다. (필요 객체가 존재하지 않다면 error 발생)
👨🏻💻 Test 관련 어노테이션
✍🏻 @ContextConfiguration
- 테스트 관련해서 가장 중요한 어노테이션
- 스프링이 실행되면서 어떤 설정 정보를 읽어 들여야 하는지를 명시
- 속성으로는 locations를 이용해 문자열의 배열로 XML 설정 파일을 명시할 수 있다.
- classes 속성으로 @Configuration이 적용된 java 클래스를 지정해 줄 수도 있다.
✍🏻 @RunWith
- 테스트 시 필요한 클래스를 지정
- 스프링은 SpringJUnit4ClassRunner 클래스가 대상이 된다.
- @RunWith는 '나는 이 클래스를 가지고 테스트를 진행 할 거야' 라는 어노테이션
✍🏻 @Test
- junit에서 해당 메서드가 jUnit상에서 단위 테스트의 대상인지 안내.
🧹 최종 정리
- ‘root-context.xml’ 설정 파일을 읽어 관리하고 생성해야 하는 객체 정보를 읽는다.
- Lombok은 간단하게 말하면 컴파일시 흔하게 동작하는 기능들을 완성해주는 라이브러리이다.
- Lombok에서 @Data를 가장 많이 사용된다 @Data를 주로 사용
- @Aurowired는 ‘나는 특정한 객체에 의존적이니 나에게 해당 타입의 빈을 주입해줘’ 라는 어노테이션이다.
- @Component은 해당 클래스가 스프링에서 객체로 만들어서 관리하는 대상임을 명시하는 어노테이션
- @RunWith는 '나는 이 클래스를 가지고 테스트를 진행 할 거야' 라는 어노테이션
- @Test는 '해당 메서드는 jUnit상에서 테스트 대상 입니다' 라는 어노테이션.
- @ContextConfiguration은 테스트 관련해서 가장 중요한 어노테이션이다.
- @ContextConfiguration의 문자열로 XML 설정 파일을 명시할 수 있고, @Configuration이 적용된 java 클래스를 지정해 줄 수도 있다.
'Spring > 코드로 배우는 스프링 웹 프로젝트' 카테고리의 다른 글
11. 코드로 배우는 스프링 웹 프로젝트 - [스프링과 DataBase 연동] - 프로젝트의 JDBC 연결 (0) | 2022.12.29 |
---|---|
10. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링 단일 생성자의 묵시적 자동 주입 (0) | 2022.12.26 |
08. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링이 동작하면서 생기는 일 (0) | 2022.12.26 |
07. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링이 동작하면서 생기는 일 (0) | 2022.12.26 |
06. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 의존성 주입 테스트 (0) | 2022.12.25 |
Comments