스프링강의

LOMBOK(롬복) @RequiredArgsConstructor

lby132 2021. 6. 21. 21:15

롬북에서 지원하는 @RequiredArgsConstructor = 생성자 자동주입.

이걸 클래스 위에 선언해주면 생성자는 따로 만들지 않아도 된다.

autowired할 객체들은 final로 만들어 준다.

 

ex) lombok을 안썼을때

 

@Component
public class OrderServiceImpl implements OrderService {

private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;

 

public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy){
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}

 

----------------------------------------------------------------------------------------

ex) lombok을 썼을때

 

@Component 
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {


private final MemberRepository memberRepository; // 생성자가 하나여서 @Autowired가 생략되었다
private final DiscountPolicy discountPolicy; //  생성자가 하나면 @Autowired가 자동 주입된다.

 

// 생성자가 하나일땐 @Autowired가 생략 가능하다

 

package hello.core;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
public class HelloLombok {

private String name;
private int age;

public static void main(String[] args){
HelloLombok helloLombok = new HelloLombok();
helloLombok.setName("abadsf");

System.out.println("helloLombok = " + helloLombok);
}
}