2014년 12월 2일 화요일

[스프링프레임워크3.X IoC강좌]컨테이너 분류(Spring IoC 컨테이너,Spring IoC, DI, DL, 의존성풀, 컨텍스트화된 의존성 룩업)[자바개발자교육/자바교육/자바강좌/자바,Spring교육잘하는곳/자바,spring교육추천/자바실무교육/JAVA/JAVA교육/JAVA스프링학원/JAVA실무교육]

[스프링프레임워크3.X IoC강좌]컨테이너 분류(Spring IoC 컨테이너,Spring IoC, DI, DL, 의존성풀, 컨텍스트화된 의존성 룩업)

1. DL(Dependency Lookup)
 
모든 IoC 컨테이너는 각 컨테이너에서 관리해야 하는 객체들을 관리하기 위한 별도의 저장소를 가진다.Bean에 접근하기 위하여 컨테이너에서 제공하는 API를 이용하여 사용하고자 하는 Bean을 Lookup 하는 것으로 컨테이너 API와 의존관계를 많이 가지면 가질수록 어플리케이션 컨테이너에 종속되는 단점이 있다.
 
2. DI(Dependency Injection)
 
DI는 Spring에서 새롭게 지원하는 IOC의 한 형태이다.각 계층 사이, 각 class 사이에 필요로 하는 의존관계가 있다면 이를 컨테이너가 자동 적으로 연결시켜 주는 것으로 각 class 사이의 의존관계를 Bean 설정 정보를 바탕으로 컨테이너가 자동적으로 연결해 주는 것이다.
 
3. 의존성 풀(Dependency Pull)
 
IoC 타입중 가장 익숙한 타입으로 필요할 때 마다 레지스트리에서 의존성을 가지고 온다. EJB의 경우 JNDI API를 통해 EJB 컴포넌트를 룩업 한다.
아래는 전형적인 의존성 풀 룩업을 이용한 형태다.
BeanFactory f = getBeanFactory();
MessageRenderer m = (MessageRenderer)factory.getBean(“renderer”);
m.render();
 
 
 
4. 컨텍스트화된 의존성 룩업(Contextualized Dependency Lookup)

레지스트리가 아니라 리소스를 관리하는 컨테이너를 대상으로 룩업을 수행하며 보통 정해진 시점에 룩업이 수행된다.

컨테이너는 내부 WAS(톰캣, JBOSS등)나 스프링프레임워크에서 제공한다.
 
 
//이 인터페이스를 구현한 클래스는 의존성이 필요함(다른 객체를 참조 하고 싶다)을 컨테이너에게 알린다.
public interface ManagedComponent {
  public void performLookup(Container container);
}
//아래 Container 인터페이스를 사용하여 의존성을 룩업 할 수 있다.
public interface Container {
  public Object getDependency(String key);
}
public class ContextualizedDepandencyLooup implements ManagedComponent {
  private Dependency dependency;
  public void performLookup(Container container) {
  dependency = (Dependency) container.getDependency("myDependency");
  dependency.sayHello();
  }
}
class Dependency {
  void sayHello() {
  System.out.println("hello");
  }
}



 [100%환급,실무전문]빅데이터/SQL/자바/스프링/안드로이드/닷넷C… 오라클자바…12-272695
 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육…오라클자바…12-111950
53 [평일100%환급7건]Spring,자바&JSP,안드로이드,웹퍼블리싱,C#닷… 오라클자바…03-151772
52 [주말]C#,ASP.NET마스터 오라클자바…01-311919
51 [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… 오라클자바…01-312801
50 [주말주간]자바&웹,jQUERY,스프링프레임워크,마이바티스 오라클자바…01-311477
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정-… 오라클자바…01-191811
48 [평일야간,주말]안드로이드개발자과정(Android기초실무) 오라클자바…01-111688
47 [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… 오라클자바…01-032230
46 [100%환급,실무전문]빅데이터/SQL/자바/스프링/안드로이드/닷넷C… 오라클자바…12-272695
45 [평일주간]NoSQL,MongoDB,빅데이터기초과정 오라클자바…12-191911
44 [평일주간야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX… 오라클자바…12-141889
43 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… 오라클자바…12-111950
42 [평일주간]빅데이터하둡기초과정(BigData Hadoop) 오라클자바…12-091536
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011759
40 [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… 오라클자바…12-011963
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011405

댓글 없음:

댓글 쓰기