@Service 어노테이션 @Component 어노테이션
@Service 어노테이션은 @Component 어노테이션을 가지고 있음
-> 스프링이 자동으로 객체를 만들고 실행하는 흐름을 가져간다.
필요한 것을 알아서 생성해서 코드의 실행을 Spring Framework가 제어하고 흐름을 제어한다 == 제어의 역전(Ioc)
정리
- 스프링이 코드의 실행 제어권을 갖는다
- 서버에 실행에 필요한 객체 선언 -> 스프링이 해당 객체의 인스턴스를 생성 후 사용
- 특정 객체가 특정 기능을 구현하는데 꼭 필요한 다른 객체가 있는 경우 -> @Component 어노테이션 사용
@Autowired 어노테이션
다른 객체 생성에 또 다른 객체가 필요한 경우 해당 객체에 @Autowired를 붙인다.
- @Autowired를 필드에 직접 주입하면 스프링이 생성해서 넣어줌 (위험)
- @Autowired를 setter에 붙여서 스프링이 생성해서 넣어줌 (얘도 위험)
- @Autowired를 생성자에 붙여서 스프링이 생성해서 넣어줌
특이 케이스가 아닌경우 생성자 주입을 사용한다.
생성자 주입은 final 필드 값을 넣어주는 생성자를 생성하고 @Autowired를 입력하면 된다.
생성자 주입 시, @Autowired는 생략이 가능하다.
롬복 사용시, 필수값들이 다 들어가는 생성자를 자동으로 만들어주는 @RequiredArgsConstructor 를 쓰면 생성자 구현을 안해도 된다.
선언만 하면 알아서 만들어 준다.
결론
스프링이 대부분의 필수적으로 들어가는 귀찮은 작업들을 해주므로 개발자는 신경을 덜 써도 된다.
지금 다 이해하지 않더라도 왜 좋은지는 알고 가면 된다. 나중에 깊게 알아보고 지금은 기능 구현에 집중하기.
'TIL' 카테고리의 다른 글
TIL 로그인 회원 가입 기능 구현 JWT 토큰 사용 221205 (0) | 2022.12.06 |
---|---|
TIL/WIL 부트캠프 3주차 회고 221204 (0) | 2022.12.04 |
TIL JPA 심화 영속성 컨텍스트 @Enumerated (feat. 꿈에서도 코딩)221202 (0) | 2022.12.03 |
TIL 자바 백엔드 공부 로드맵 (feat. 11월 회고) 221201 (0) | 2022.12.01 |
TIL 팀과제 JPA 뜻 Request Response HTTP Method 221130 (0) | 2022.12.01 |