(스프링) 의존관계 주입

*의존 관계 주입이란?

프로그래밍에서 의존성(Dependency)이란, 어떤 클래스가 자신의 임무를 다하기 위해 필요한 값(필드 값)이나 사용할 다른 클래스와의 관계를 말한다.
주입(Injection)이란, 어떤 클래스의 인스턴스에 대해 외부로 부터 '의존성'을 설정하는 것을 말한다.
의존 관계 주입 컨테이너가 하는 역할은 어떤 클래스가 필요로하는 값이나 인스턴스를 생성, 취득하고, 그 클래스의 인스턴스에 대해 설정하는 것.
이렇게하면 필요한 인스턴스를 생성, 취득하는 코드를 직접 만들지 않아도 된다.
그 결과 클래스간 관계가 느슨한 결합이 되어 의존성은 약해진다.

두가지 주입이 있다.

  • 생성자를 통한 주입
  • 설정 메소드를 통한 주입

public class Foo{
  private Bar bar;
}

-->Foo클래스가 Bar클래스에 의존하고 있고, Bar에 대한 인스턴스 참조는 의존관계라고 생각 할 수 있다.

1. 생성자를 통한 주입이란

public class Foo
{
   private Bar bar;
   public Foo(Bar bar){
    this.bar=bar;
  }
}


2. 설정 메소드를 통한 주입이란

public class Foo
{
  private Bar bar;
  public setBar(Bar bar){
   this.bar=bar;
  }
}


*설정파일 beans.xml

생성자 주입은 <bean>요소의 자식요소로 <construct-arg> 요소를, 설정주입은 <property>요소를 사용합니다.  각각의 자식 요소인 <value>요소를 사용해서 실제로 주입할 값을 정의한다.<property>요소에서는 name속성을 사용해서 값을 주입할 대상의 필드 이름을 지정해야 한다.


예) Foo(int a,String b){....}

<bean id="foo" class="Foo">
  <construct-arg index="0" value="25/>
  <construct-arg index="1" value="hello"/>
</bean>


참고하기 좋은 사이트: http://joont.tistory.com/14

댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기