일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Short
- 제너릭
- 스프링
- 클래스
- 빌드
- start.spring.io
- Scanner
- Java
- 언박싱
- Jenkins
- 내장객체
- boxing
- 인텔리제이
- 컬렉션
- dependency
- 루프
- 콜렉션
- 싱글톤
- bootstrap
- wrapper
- https://start.spring.io
- 싱글턴
- maven
- 제네릭
- 무한
- suvlet
- 메소드
- 자동형변환
- unboxing
- 박싱
Archives
- Today
- Total
Developer Gonie
8. 스프링(Spring)에서의 의존성 주입(DI, Dependency Injection) 방법 본문
K-DigitalTraining 강의/11. Spring
8. 스프링(Spring)에서의 의존성 주입(DI, Dependency Injection) 방법
이대곤 2022. 8. 23. 19:41스프링에서의 의존성 주입(DI, Dependency Injection)
* 스프링에서도 다음과 같은 방식으로 DI를 구현한다.
1) 생성자를 이용한 주입
2) setter 메소드를 이용한 주입
3) @Autowired 어노테이션을 이용한 주입
다만, 순수 Java 코드와 다르게 스프링에서는 직접 생성자 혹은 setter 메소드를 호출하지 않으며
이를 대신해 XML이나 어노테이션을 이용해 호출되도록 한다
ex) @Autowired 어노테이션을 이용한 주입(수업시간에 주요하게 사용했던 방식)
아래의 게시글에서 하단의 'Spring Bean Configuration XML 파일 작성방법 Case2' 를 참고하면 된다.
https://ldgeao99-developer.tistory.com/537
ex) 묵시적 자동주입(=생성자를 이용한 주입)
package org.zerock.sample;
import org.springframework.stereotype.Component;
import lombok.Getter;
import lombok.ToString;
@Component
@ToString
@Getter
public class SampleHotel{
private Chef chef;
/*
스프링 4.3 이후부터 제공되는 기능인데
이 방식은 생성자를 통한 묵시적 주입 방식으로
참조변수를 주입하는 생성자를 만들어놓고 @Component 어노테이션을 붙여주면
@Autowired 어노테이션 없이 주입이 처리된다.
*/
public SampleHotel(Chef chef){
this.chef = chef;
}
}
ex) 어노테이션을 이용한 setter 메소드를 이용한 주입 예시
- @Data : @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정해주는
어노테이션입니다.(Lombok의 기능)
- @Component : 스프링에게 해당 클래스가 스프링에서 관리해야 하는 대상임을 표시하는 기능, (스프링빈 등록)
- @Setter : 자동으로 해당 멤버변수에 필요한 setter메소드 setChef()을 컴파일시 생성해주는 기능.(Lombok의 기능)
- @Autowired : 스프링빈에 등록된 객체중 적절한 객체를 주입해주는 기능.
package org.zerock.sample;
import org.springframework.stereotype.Component;
import lombok.Data;
@Component
@Data
public class Chef{
}
package org.zerock.sample;
import org.springframework.beans.factory.annotaion.Autowired;
import org.springframework.stereotype.Component;
import lombok.Data;
import lombok.Setter;
@Component
@Data
public class Restaurant{
@Setter(onMethod = @Autowired)
private Chef chef;
}
'K-DigitalTraining 강의 > 11. Spring' 카테고리의 다른 글
스프링(Spring)에서 jsp 파일을 바로 실행하기 위한 jsp 파일 위치 (0) | 2022.08.28 |
---|---|
9. 스프링(Spring), 자동으로 생성 및 관리되게할 객체를 등록하는 Spring Bean Configuration XML 파일 생성 및 작성방법 (0) | 2022.08.23 |
7. 의존성 주입(DI, Dependency Injection) 이란 (0) | 2022.08.23 |
6. 스프링(Spring), 컨테이너의 종류 (0) | 2022.08.20 |
정규표현식을 이용한 사용자입력 유효성 검사 (0) | 2022.08.20 |
Comments