반응형
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
- 별찍기
- jsp
- 반복문
- 카카오 로그인
- 주소
- id 개별 부여
- 로그아웃
- openChallenge
- 로그인
- 회원가입페이지
- 변경
- 변수
- 크기조정
- 유효성검사
- restAPI
- rest api
- 인스턴스
- 셀렉터
- 연산자 우선순위
- 스타일 시트
- 조건문
- textarea
- 없애기
- 다음주소API
- 테이블 생성
- 자바
- span width 설정
- API
- 카카오로그인
- 42000
Archives
- Today
- Total
뚜벅이 한걸음
스프링 프레임 워크 - 의존 주입 본문
반응형
xml말고 자바클래스를 이용해서 객체를 만드는 방법도 있다.
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration //bean에 대한 설정정보를 가지고 있는 문서라는것을 어노테이션을 이용해서 ioc컨테이너에게 알려준다.
public class ApplicationContext {
/*
ioc 컨테이너는 해당 어노테이션을 가지고 있는 클래스를 로드하여 bean을 등록할 수있다.
bean을 생성하는 방법은 해당 클래스에 @bean 어노테이션을 가지고 있는 메서드만 호출한 반환값이된다 .
이때 bean의 id는 메서드 명이된다.
*/
//메소드의 호출결과가 객체여야한다.
//method의 이름이 bean의 이름이된다.
@Bean //얘가 bean이라는 것을 알려줌
public A methodA() {
A a = new A();
a.setName("홍길동");
a.setValue("a객체의 값");
return a;
}
@Bean
public B methodB() {
B b = new B();
b.setName("객체 B");
b.setA(methodA()); //세터 주입. 필요한 메소드를 호출해서 객체를 넣어서 주입한다.
return b;
}
//ioc 컨테이너는 이 메서드들을 활용해서 의존성을 주입한다. 여기가 설정문서가 되는 것
/*
ioc 컨테이너를 이용하여 의존을 주입하기 위해서는 ioc 컨테이너가 생성한 객체끼리만 가능하다.
때문에 해당 클래스에서 스프링의 의존 주입을 하기 위해서는 클래스가 가지고 있는 메서드를 사용할 수밖에 없다.
*/
}
A클래스와 B 클래스가 있을 때 B 클래스 내부에서 A 클래스를 생성한다면
method B라는 이름의 메서드를 이용하여 객체를 생성할 수있다.
※Method Injection (일반 메서드를 이용한 의존성 삽입)
: 의존성을 입력 받는 일반 메서드를 만들고 이를 통해 의존성을 주입한다.
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
public static void main(String[] args) { //자바파일로 만들었기때문에 .class의 형태로 넘긴다.
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationContext.class);
//자바이기 때문에 ioc 컨테이너도 객체로서 동작을 한다.
//컨테이너가 가지고있는 객체 중 B 호출하기
B b = ctx.getBean("methodB", B.class);
b.printB();
}
}
AnnotationConfigApplicationContext를 이용하여
ApplicationContext 클래스를 생성자로 넘기면(생성자의 매개변수로 넘기면)
ioc컨테이너는 해당 클래스를 객체화한뒤
@Bean 어노테이션을 가지고 있는 메서드를 전부 호출하여 반환된 객체를 가지고 있게된다 .
--인스턴스의 생명주기를 관리할 수 있게 됨
반응형
'Spring' 카테고리의 다른 글
스프링 프레임워크 - Mapper (0) | 2022.07.11 |
---|---|
스프링 프레임워크 - mybatis 설정 (0) | 2022.07.11 |
스프링 프레임워크 - 의존 주입(@어노테이션) (0) | 2022.07.11 |
스프링 프레임 워크 - 의존성 주입(Dependency Injection) (0) | 2022.07.11 |
스프링 프레임워크 1 (0) | 2022.07.11 |