일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 스프링
- 자바
- 오라클
- 오라클월별데이터
- jsp
- 스프링과 스프링부트 차이점
- 자바 기초
- 자바왕초보
- 스프링 Ioc Container
- 스프링 에러
- 세션
- 제이쿼리
- 스프링 제어역전
- HTML
- 오라클일별데이터
- 자바 왕기초
- CSS
- 오라클주별데이터
- 스프링 Ioc
- 오라클클라우드에 젠킨스 설치하기
- 자바기초
- Spring Boot가 해결하려고 했던 문제
- 스프링 구글차트로 기간별 현황 조회하기
- java
- 스프링 부트가 해결하려고 했던 문제
- maven
- 썸머노트
- 스프링 구글차트
- 자바왕기초
- 오라클통계
- Today
- Total
Just Do it
스프링의 의존성 주입 본문
*출처: 코드로 배우는 스프링 웹프로젝트 ,구멍가게코딩단, 남가람북스
주입을 받는 입장에서는 어떤 객체인지 신경 쓸 필요가 없다.
어떤 객체에 의존하든 자신의 역할은 변하지 않는다.
스프링에서는 ApplicationContext라는 존재가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 해주는 구조이다. 따라서 스프링을 이용하면 개발자들은 기존의 프로그래밍과 달리 객체와 객체를 분리해서 생성하고, 이러한 객체들을 엮는 (Wiring) 작업을 하는 형태의 개발을 하게 된다. 스프링에서는 ApplicationContext가 관리하는 객체들을 빈(Bean)이라는 용어로 부르고, 빈과 빈 사이의 의존관계를 처리하는 방식으로 XML설정, 어노테이션 설정, Java 설정 방식을 이용할 수 있다.
스프링의 의존성 주입은 크게 1) 생성자 주입과 2) Setter 주입을 사용한다. Setter주입은 setXXX()와 같은 setter메서드를 작성하고 (또는 Lombok으로 생성하고) @Autowired와 같은 애너테이션을 통해서 스프링으로부터 자신이 필요한 객체를 주입해 주도록 한다.
생성자 주입은 이러한 주입을 생성자를 통해서 처리한다. 생성자 주입의 경우 객체 생성 시 의존성 주입이 필요하므로 좀 더 엄격하게 의존성 주입을 체크하는 장점이 있다. 기존에 스프링에서는 생성자 주입을 하기 위해서 생성자를 정의하고 @Autowired와 같은 애너테이션을 추가해야만 생성자 주입이 이루어졌지만 스프링 4.3 이후에는 묵시적으로 생성자 주입이 가능하다.
'신입 개발자가 되기 위해 공부했던 독학 자료들 > Spring' 카테고리의 다른 글
스프링 시큐리티(Spring Security) 기본 설정 (0) | 2022.03.11 |
---|---|
맥북에서 maven 터미널로 .m2 폴더 열기 (0) | 2022.02.17 |
Spring DI 활용하기: 이론 (0) | 2022.02.14 |
스프링 WebDataBinder의 데이터 변환과 검증 (0) | 2022.02.11 |
@RequestParam과 @ModelAttribute (0) | 2022.02.10 |