- DI(의존관계설정) - Spring : 의존 관계 주입 경량화 컨테이너
의존성? 어떤 클래스가 자신의 임무를 다하기 위해 필요한 값(필드 값) 이나 사용할 다른 클래스와의 관계를 말한다.
주입? 어떤 클래스의 인스턴스에 대한 외부로 부터 '의존성'을 설정하는 것을 말한다.
- 컨테이너가 하는 역할
어떤 클래스가 필요로 하는 값이나 인스턴스를 생성, 취득하고, 그 클래스의 인스턴스에 대해 설정하는 것
이렇게 하면 필요한 인스턴스를 생성, 취득하는코드를 직접 만들지 않아도 되고, 그 결과 클래스간 관계가 느슨한 결합이 되어
의존성이 약해진다.
- 스프링을 사용해 Bean을 취득하는 기본적인 절차
1. Bean 팩토리를 생성한다.
2. Bean 팩토리로 부터 Bean을 취득한다.
ex)
// Bean 팩토리 생성
BeanFactory factory = new XmlBeanFactory(new FileSystemResource("beans.xml"));
- FileSystemResource 클래스의 생성자에는 XML 정의 파일을 지정한다.
XML 정의 파일(beans.xml)의 정보를 사용하는 BeanFactory 인스턴스 생성
// Bean 취득
MessageBean bean = factory.getBean("MessageBean", MessageBean.class); // bean.xml id 값과 일치한 값 등록
- Bean 을 취득한 후 클래스 내의 메서드 사용
- 설정파일(beans.xml) - 명칭은 임의이므로 신경쓰지 않아도 된다.
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- OneToOne bean -->
<bean id="messageBeanOneToOne" class="OneToOne.sample3.MessageBeanKr" />
</beans>
- id : Bean에 고유한 이름을 붙이기 위함.
- class : id 속성에 의해 설정된 실제의 클래스이름(패키지이름 + 클래스 이름)
- 의존 관계 주입방법의 2가지 ( 생성자 & 메서드 )
1. 생성자를 통한 주입
생성자를 사용해 의존 관계를 주이하는 것을 말한다.
ex)
Foo.java ----------
public Class Foo {
private Bar bar;
public Foo(Bar bar){
this.bar = bar;
}
}
2. 설정 메서드를 통한 주입
Foo.java ----------
public class Foo {
private Bar bar;
public setBar(Bar bar) {
this.bar = bar;
}
}
'공부 > SPRING(3.0)' 카테고리의 다른 글
SPRING_[HandlerMapping 을 이용한 Controller 설정 방법] (0) | 2012.11.28 |
---|---|
SPRING_[설정파일 (dispatcher-servlet.xml)] (0) | 2012.11.28 |
SPRING_[ 어노테이션 @Autowired 사용범] (0) | 2012.11.26 |
SPRING_[설정파일(XML)] (0) | 2012.11.23 |
SPRING_[Spring 이란?] (0) | 2012.11.22 |