오늘은 스프링 빈과 의존관계에 대해 알아보고자 한다!!!!
저번 블로그 글 👉👉
2022.10.09 - [스터디/스프링] - 스프링 공부 일지 - 간단한 회원 관리와 테스트 케이스 만들기!!
스프링 공부 일지 - 간단한 회원 관리와 테스트 케이스 만들기!!
오늘은 간단한 회원 관리를 해보고 테스트 케이스를 만들어보고자 한다!! 지난 블로그 👉👉 2022.10.07 - [스터디/스프링] - 스프링 공부 일지 - 스프링 웹 개발 방법 3가지 스프링 공부 일지 - 스프
sleecode.tistory.com
'스프링 빈' 은 무엇인가?!!!!
👉 스프링 컨테이너에서 관리되는 자바 객체 POJO(Plain Old Java Object) 를 의미한다
👉 등록할 때 기본으로 싱글톤으로 등록한다!!!
👉 유일하게 하나만 등록해서 공유한다는 것!! (설정을 할 수 있으나, 대부분이 싱글톤)
그렇다면 '스프링 컨테이너'는 ?
👉 스프링 빈의 생명 주기를 관리한다!!
👉 이로써 객체들 간의 의존관계를 알아서 처리해주고, 제어 흐름을 외부에서 관리한다고 할 수 있다!!
스프링 빈을 등록하는 방법에는 2가지가 있다!!
정형화된 경우에는 컴포넌트 스캔을,
정형화되지 않거나, 상황에 따라 변경해야 하면 직접 빈 등록을 한다!
☝ 컴포넌트 스캔과 자동 의존관계 설정
- 기본으로 @SpringBootApplication 이 있는 패키지부터 하위 목록 모두 스프링 빈으로 컴포넌트 스캔을 한다!!
- @SpringBootApplication 에 들어가면 @ComponentScan 이 있다
- @Component 어노테이션이 있으면 스프링 빈으로 자동 등록!
- 컴포넌트 어노테이션의 하위 목록
- @Controller
- @Service
- @Repository
- 컴포넌트 어노테이션의 하위 목록
- 의존 관계 설정
- DI(Dependency Injection) 의존성 주입 👈 객체 의존관계를 외부에서 넣어주는 것
- 객체 생성할 때 생성자에 @Autowired 를 추가하여
스프링 빈으로 등록된 객체를 스프링 컨테이너에서 찾아서 넣어준다!!
✌ 자바 코드로 직접 스프링 빈 등록하기
- @Bean 을 사용해서 직접 등록!
DI의 3가지 방법
@Autowired를 사용한 필드 주입
public으로 setter 주입
생성자 주입
필드에다가 주입하면, 나중에 바꾸기 힘들다!
setter로 주입하면 public이라서 노출 가능성이 있고, 보통 중간에 바꾸는 일이 별로 없다!
생성자 주입은 보통 생성할 때 하니까 나중에 바꿀 수 없다!
하지만 의존관계가 실행 중 동적으로 바꾸는 경우 거의 없으므로 생성자 주입이 보통이다😉
이렇게 해서 스프링에서 나오는 새로운 개념인,
스프링 빈과 의존 관계 주입에 대해 알아보았돠!!!!!!
너무 오랜만에 글을 쓰는 것 같은데,
왜냐면 할 게 너무 많았고,,
시험기간이었고,,
블로그가 밀렸고,,,
네 그렇습니다 ㅎㅅㅎ,,,
그럼 안녕!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!🙌🙌🙌🙌🙌🙌🙌🙌
'스터디 > 스프링' 카테고리의 다른 글
스프링 공부 일지 - DB를 사용해보자!! (0) | 2022.11.01 |
---|---|
스프링 공부 일지 - 웹 MVC 개발 (0) | 2022.11.01 |
스프링 공부 일지 - 간단한 회원 관리와 테스트 케이스 만들기!! (0) | 2022.10.09 |
스프링 공부 일지 - 스프링 웹 개발 방법 3가지 (0) | 2022.10.07 |
스프링 공부 일지 - Thymeleaf 를 사용한 View 페이지 만들기! (0) | 2022.10.05 |