반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 없애기
- rest api
- 인스턴스
- 자바
- 유효성검사
- 다음주소API
- jsp
- 연산자 우선순위
- 반복문
- 조건문
- 셀렉터
- 카카오로그인
- 변경
- API
- 테이블 생성
- 변수
- id 개별 부여
- span width 설정
- 별찍기
- 카카오 로그인
- 42000
- 로그인
- 스타일 시트
- 회원가입페이지
- restAPI
- 로그아웃
- 크기조정
- 주소
- openChallenge
- textarea
Archives
- Today
- Total
뚜벅이 한걸음
스프링 프레임 워크 - 의존성 주입(Dependency Injection) 본문
반응형
1. 의존성 주입(Dependency Injection)
: Dependency Injection의 약자로 의존 관계 주입 즉, 오브젝트 사이의 의존 관계를 만드는 것이다.
2. DI의 종류
1) Setter Injection( 세터 주입)
: 클래스를 만들때 만든 setter를 이용하여 의존성을 주입하는 방법
2) Construction
Injection( 생성자 주입)
: 클래스의 생성자를 이용하여 의존성을 주입
B b = new B();
A a = new A(b); // 인젝션
3. 스프링에서의 DI(Dependency Injection)
: 오브젝트간의 의존관계를 자동화해주는 것을 의미하며 Ioc 컨테이너에서 자동화 역할을 담당한다.
※ 예시
: class A는 field1과 field2라는 변수를 가지고 있고,
class B는 b_field 라는 변수를 가지고 있다.
class B는 class A를 변수로서 가지고 있다.
package diEx01;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class Main {
public static void main(String[] args) {
//순행주입
A a = new A();
a.setField1("a의 field1입니다.");
a.setField2("a의 filed2입니다.");
B b = new B();
//setter주입 (의존주입- B는 A가 있어야 한다. a를 먼저생성하고 setter로 주입 - 순행주입(순서대로 개발하고 개발자가 주입함))
b.setA(a);
b.setB_field("b의 field입니다.");
b.printInfo();
//spring ioc 컨테이너를 사용하여 객체 의존 주입 확인하기
String path = "classpath:applicationContext.xml";
//classpath: 라고 되어있으면 컴퓨터가 resources파일을 뒤진다
//spring ioc 컨데이너의 객체 생성(xml에서 설정된 내용들이 ctx에 담김)
//컨테이너 객체가 생성되는 시점에 생성자로 넘어간 classpath 정보를 읽어들이고
//해당 xml에 있는 bean객체로 생성하고 객체 생성시 필요한 객체간의 의존을 주입한다.
AbstractApplicationContext ctx = new GenericXmlApplicationContext(path);
//ioc컨테이너가 생성하여 가지고 있는 객체 b를 꺼내 spring B 변수에 대입
B springB = ctx.getBean("b", B.class); //인자값은 xml에 정의한 bean의 이름, 클래스의 이름
springB.printInfo();
}
}
springB의 정보를 불러오면 xml에 정의해둔 객체를 프레임워크가 생성했다는 것을 알 수 있다.
개발자는 xml에 설계도만 작성해두고 생명주기는 프레임워크가 담당하는 것이다.
반응형
'Spring' 카테고리의 다른 글
스프링 프레임워크 - Mapper (0) | 2022.07.11 |
---|---|
스프링 프레임워크 - mybatis 설정 (0) | 2022.07.11 |
스프링 프레임워크 - 의존 주입(@어노테이션) (0) | 2022.07.11 |
스프링 프레임 워크 - 의존 주입 (0) | 2022.07.11 |
스프링 프레임워크 1 (0) | 2022.07.11 |