의존성
📌 의존성
① 클래스 의존(구현 의존)
② 인터페이스 의존
DI 컨테이너
📌 의존성 주입(Dependency Injection)
: 의존하는 부분을 외부에서 주입하는 것.
의존하는 부분 : '사용하는 객체' 클래스에 '사용되는 객체' 클래스가 작성된 상태.
외부로부터 주입 : '사용하는 객체' 클래스 밖에서 '사용되는 객체' 인스턴스를 주입하는 것.
📌 임의로 구현한 클래스를 인스턴스로 만들어주는 기능 제공.
DI 컨테이너 규칙
📌 규칙
① 인터페이스를 이용해 의존성 만듦.
② 인스턴스를 명시적으로 생성하지 않음.
③ 어노테이션을 클래스에 부여함.
④ 스프링 프레임워크에서 인스턴스를 생성함.
⑤ 인스턴스를 이용하고 싶은 곳에 어노테이션을 부여함.
DI 컨테이너 규칙 - 규칙 1
📌 규칙1. 인터페이스를 이용해 의존성 만듦.
→ 의존하는 부분에 인터페이스를 이용함을 의미.
DI 컨테이너 규칙 - 규칙 2
📌 규칙2. 인스턴스를 명시적으로 생성하지 않음.
→ 인스턴스 생성에 new 키워드 사용하지 않음을 의미.
DI 컨테이너 규칙 - 규칙 3, 4
📌 규칙3. 어노테이션을 클래스에 부여함.
규칙4. 스프링 프레임워크에서 인스턴스를 생성함.
→ 인스턴스를 생성하려는 클래스에 인스턴스 생성 어노테이션 부여함을 의미.
💡 스프링 프레임 워크 실행 과정
① 컴포넌트 스캔(Component Scan) : 시작할 때 대상 프로젝트의 모든 패키지를 스캔하는 것.
② 인스턴스 생성 어노테이션이 부여된 클래스 추출.
③ 추출한 클래스의 인스턴스 생성.
💡 인스턴스 생성 어노테이션
어노테이션 | 개요 |
@Controller | 인스턴스 생성 지시. 스프링 MVC 이용할 때 컨트롤러에 부여. |
@Service | 인스턴스 생성 지시. 트랜잭션 경계가 되는 도메인(서비스) 기능에 부여. |
@Repository | 인스턴스 생성 지시. 데이터베이스 액세스(리포지토리) 기능에 부여. |
@Component | 위 용도 이외의 클래스에 부여. |
DI 컨테이너 규칙 - 규칙 5
📌 규칙5. 인스턴스를 이용하고 싶은 곳에 어노테이션을 부여함.
→ 스프링 프레임워크에 의해 생성된 인스턴스를 이용하는 클래스에
참조를 받는 필드를 선언하고, 필드에 @Autowired 어노테이션을 부여함.
DI 프로그램 만들기
https://codingrecord2209.tistory.com/283
[Spring] DI 프로그램 만들기
DI 프로그램 만들기 📌 프로젝트 생성 ① 아래 사이트 접속. https://start.spring.io/ ② ADD ... 클릭 후 Sprint Boot Dev Tools 선택. ③ 아래와 같이 선택 후 GENERATE 클릭. ④ 다운로드한 파일 'DependencyInjectionSa
codingrecord2209.tistory.com
'Spring' 카테고리의 다른 글
[Spring] 어노테이션 (0) | 2022.11.02 |
---|---|
[Spring] 실습 : DI 프로그램 만들기 (0) | 2022.11.02 |
[Spring] 스프링 프레임워크의 핵심 기능 (0) | 2022.11.02 |
[Spring] 개발에 사용하는 라이브러리와 도구 (0) | 2022.11.01 |
[Spring] Spring Framework (0) | 2022.10.31 |
댓글