2013년 7월 23일 화요일

(ORACLEJAVA개발자실무교육,오엔제이프로그래밍실무교육센터)Spring IoC의 DI 세터 주입(Setter Injection) 예제 - XML기반

Spring IoC의 DI 세터 주입(Setter Injection) 예제 - XML기반


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷  실무전문 강의)




Spring IoC DI중 하나인 Setter 주입 예제를 만들어 보자.

1.     [/src/main/resources/xmlBeanFactory.xml]


<?xml version="1.0" encoding="UTF-8"?>
      
       <bean id="car" class="onj.spring.di.Car"/>

       <bean id="audi" class="onj.spring.di.Audi">
             <property name="car"><ref bean="car"/></property>   
       </bean>     
</beans>


2.     CarMaker.java


package onj.spring.di;

public interface CarMaker {
              public Car sell();
}


3.     Car.java

package onj.spring.di;

public class Car {
       private String name;
         public Car() {
         }
         public Car(String name) {
            this.name = name;
         }
         public String getName() {
            return this.name;
         }
         public void setName(String name) {
            this.name  = name;
         }
}



4.     Audi.java(Audi setCar 메소드로 Car 인스턴스가 주입된다)

package onj.spring.di;


public class Audi implements CarMaker {
       private Car car;
      
       public Audi() {}
      
      
       public void setCar(Car car) {
             this.car = car;
       }
      

       public Car sell() {
             this.car.setName("Audi A6");
             return car;
       }
}



5.     SetterInjectionExam.java


package onj.spring.di;

import org.springframework.context.support.GenericXmlApplicationContext;

public class SetterInjectionExam {
   public static void main(String[] args) {
          GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
          ctx.load("classpath:xmlBeanFactory.xml");
          ctx.refresh();
         
          CarMaker carMaker = ctx.getBean("audi", Audi.class);

          Car c = carMaker.sell();
          System.out.println("I sold a car... " + c.getName());
   }
}
  

댓글 없음:

댓글 쓰기