DI(Dependency Injection)에 대해서..

객체가 스스로 참조하는 객체를 생성하지 않고, 외부 환경(컨테이너)에서 삽입 되는 형태를 DI(Dependency Injection)라고 하네요.. ^^

DI 를 구현하는 방법은 2가지가 있네요..

1. Constructor 방식


public class Shop {  
  private final StockManager stockManager;  
  private final String shopZipCode;  
  public Shop(StockManager stockManager, String shopZipCode) {  
       this.stockManager = stockManager;  
       this.shopZipCode = shopZipCode;  
  }  
}

2. Setter 방식

public class Shop {  
  StockManager stockManager;  
  String shopZipCode;  
  /** 
  * @service name=”StockManager”      
  */ 
  public void setStockManager(StockManager stockManager) {  
      this.stockManager = stockManager;  
  }  
  /** 
  * @config name=”shopZipCode”      
  */ 
  public void setStockManager(String shopZipCode) {  
      this.shopZipCode= shopZipCode;  
  }  
  // TODO – Joe – how does setter injector do config ? Same way?  
  public void initialize() {  
      // all setXXXs are now done 🙂  
  }  


위 내용은 http://www.picocontainer.org/injection.html 에서 읽어보시면 도움이 될것 같습니다. ^^

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.