티스토리 뷰
롬복은 컴파일 시 자주 사용되는 코드를 작성하는 기능들을 완성해주는 라이브러리
- @setter
: setter 메서드를 만들어주는 역할을 한다.
3가지 속성
- value : 접근 제한 속성을 의미
- onMethod : setter 메서드의 생성 시 메서드에 추가할 어노테이션을 지정
- onParam : setter 메서드의 파리미터에 어노테이션을 사용하는 경우 적용한다.
- @Data
: @ToString, @EqualsAndHashCode, @Getter/Setter, @RequestArgsConstructor를 모두 결합한 형태로 한 번에 자주 사용되는 모든 메서드를 생성한다.
-@Log4j
: 로그 객체를 생성한다.
-@Component
: 어노테이션이 설정된 클래스가 스프링에서 객체로 만들어서 관리하는 대상임을 명시하는 어노테이션이다.
@Component 가 있는 클래스를 스프링이 읽을 수 있도록 @ComponentScan 을 통해서 지정되어 있다.
- @Autowired
: 스프링 내부에서 자신이 특정한 객체에 의존적이므로 자신에게 해당 타입의 빈을 주입해주라는 표시
테스트 어노테이션
- @ContextConfiguratoin
: 스프링이 실행되면서 어떤 설정 정보를 읽어 들여야 하는지를 명시한다.
속성으로는 locations를 이용한 문자열의 배열로 XML 설정 파일을 명시할 수 있다.
classes 속성으로 @Configuration 이 적용된 클래스를 지정해 줄 수 있다.
- @Runwith
: 테스트 시 필요한 클래스를 지정
- @Test
: junit에서 해당 메서드가 jUnit 상에서 단위 테스트의 대상임을 알려준다.
- 단일 생성자의 묵시적 자동 주입
: 스프링의 의존성 주입은 (생성자 주입, Setter 주입) 을 사용한다.
생성자 주입 : 객체 생성 시 의존성 주입이 필요하므로 좀 더 업격하게 의존성 주입을 체크한다.
스프링 4.3 이전에는 생성자 주입을 하기 위해서 생성자를 정의하고 @Autowired와 같은 어노테이션을 추가해야 생성자 주입이 이루어 졌다. 하지만 그 이후에는 묵시적으로 생성자 주입이 가능하다.
@Component
@ToString
@Getter
public class SampleHotel {
private Chef chef
public SampleHotel(Chef chef){ // 생성자를 정의하여 Chef 객체를 주입
this.chef = chef;
}
}
위의 예제는 생성자를 정의하여 필요한 객체를 주입하는 예제 코드이다.
그렇다면 묵시적으로 생성자 주입이 되는 코드를 보자.
@Component
@ToString
@Getter
@AllArgsConstructor
// AllArgsConstructor 어노테이션은 인스턴스 변수로 선언된 모든 것을 파라미터로 받는
// 생성자를 작성한다.
public class SampleHotel {
private Chef chef;
}
어노테이션 @AllArgsConstructor을 사용하여 묵시적 생성자 주입을 적용한다.
만일 여러 개의 인스턴스 변수들 중에서 특정 변수에 대해서만 생성자를 작성하고 싶다면
@NonNull, @RequiredArgsConstructor 어노테이션을 사용하면 된다.
@Component
@ToString
@Getter
@RequiredArgsConstructor
public class SampleHotel {
@NonNull
private Chef chef;
}
@RequiredArgsConstructor 는 @NonNull, final 이 붙은 인스턴스 변수에 대한 생성자를 만들어 낸다.
'개인공부 > Spring' 카테고리의 다른 글
스프링2 (0) | 2022.05.12 |
---|---|
면접 준비 - spring framework (0) | 2022.05.11 |
스프링1 (0) | 2022.05.09 |
CRUD 구현 (0) | 2021.11.02 |
설정 - ORACLE DB (0) | 2021.09.15 |