Spring 시리즈는 혼자 공부하며 기록으로 남기고, 만약 잘못 학습 한 지식이 있다면 공유하며 피드백을 받고자 작성합니다.
스프링에 대해 깊게 공부해보고자 인프런의 김영한 강사님께서 강의를 진행하시는 (스프링 핵심 원리 - 기본편) 강의를 수강하며 정리하는 글입니다.
혹여나 글을 읽으시며 잘못 설명된 부분이 있다면 지적 부탁드리겠습니다.
막상 개발을 하다보면 대부분이 다 불변이고, final 키워드를 자주 사용하게 된다.
근데 매번 생성자 만들고.. 주입하고.. 귀찮고 복잡하다.
앞서 했던 코드에 Lombok을 적용해보자
기존 코드
@Component
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
//@Autowired - 생성자가 딱 한개만 있으면 생략 가능하다.
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
}
Lombok을 사용했었는데 그땐 왜 이걸 사용하는지도 모르고 그냥 다른 강의영상에서 쓰니깐 따라서 사용했을뿐이다.Lombok 적용
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
}
@RequiredArgsConstructor에 의해 생성자가 존재한다.
@Getter, @Setter 애노테이션으로 추가할 수 있다.HelloLombok클래스를 하나 만들어서 코드를 살펴보자public class HelloLombok {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
결과 코드
@Getter
@Setter
public class HelloLombok {
private String name;
private int age;
}

참고: toString()은
@ToString애노테이션을 추가하면된다. 얘도 롬복이다.