작성
·
649
0
Autowired 대신, AllargsConstructor 사용하면 안되나요?
잘 동작하기는 하는데
어떤게 더 좋은 방식인지 모르겠어요
답변 1
0
안녕하세요. 유승현님, 공식 서포터즈 OMG입니다.
@Autowired는 필드 주입, @AllArgsConstructor는 클래스에 존재하는 모든 필드에 대한 생성자를 자동으로 생성해주는 어노테이션으로 생성자 주입과 관련되어 동작했겠네요.
생성자 주입 할 때는 다음과 같이 작성하셔야 합니다.
@RequiredArgsConstructor
public class TestController {
private final MemberService memberService;
@RequiredArgsConstructor는 필드에 final 키워드가 붙은 대상에 한해서 생성자를 생성해 주며, 이와 같이 생성된 생성자로 주입을 받아서 작성해야합니다.
관련하여 아래의 링크를 참고하시길 바랍니다.
https://mangkyu.tistory.com/125
이 부분에 대해서는 당장 이해가 가지 않더라도, 설명 드린 best practice만 알고 넘어가신 후 스프링에 대해 지속적으로 관심있게 학습하시면 이해가 되실거에요.
감사합니다.