Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

WON.dev

DI_3 : LgTV.JAVA/SamsungTV.JAVA/TV.JAVA/TVUser.JAVA/applictionContext3.xml 본문

SPRING/chapter02_DI

DI_3 : LgTV.JAVA/SamsungTV.JAVA/TV.JAVA/TVUser.JAVA/applictionContext3.xml

GAWON 2023. 6. 26. 18:55
package org.joonzis.DI_3;

public class LgTV implements TV{
	public void LgTV() {
		System.out.println("--> LgTV 객체 생성");
	}
	
   @Override
   public void powerOff() {
      System.out.println("--> LgTV 전원 끈다");
   }
   @Override
   public void powerOn() {
      System.out.println("--> LgTV 전원 켠다");
   }
   @Override
   public void volumeDown() {
      System.out.println("--> LgTV 소리 내린다.");
   }
   @Override
   public void volumeUp() {
      System.out.println("--> LgTV 소리 울린다.");
   }
}
package org.joonzis.DI_3;

public class SamsungTV implements TV{

	public void SamsungTV() {
		System.out.println("--> SamsungTV 객체생성");
	}
	
   @Override
   public void powerOff() {
      System.out.println("--> SamsungTV 전원 끈다");
   }
   @Override
   public void powerOn() {
      System.out.println("--> SamsungTV 전원 켠다");
   }
   @Override
   public void volumeDown() {
      System.out.println("--> SamsungTV 소리 내린다.");
   }
   @Override
   public void volumeUp() {
      System.out.println("--> SamsungTV 소리 울린다.");
   }
}
package org.joonzis.DI_3;

public interface TV {
   public void powerOn();
   public void powerOff();
   public void volumeUp();
   public void volumeDown();
   
   
}
package org.joonzis.DI_3;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

public class TVUser {
   public static void main(String[] args) {
      
	   //1.Spring 컨테이너 구동
	   AbstractApplicationContext ctx = 
			   new GenericXmlApplicationContext("applicationContext3.xml");
	   
	   //2.Spring 컨테이너로부터 필요한 객체 요청
	   TV ltv =(LgTV)ctx.getBean("ltv");
	   ltv.powerOff();
	   ltv.powerOn();
	   ltv.volumeDown();
	   ltv.volumeUp();
	   
	   
	   TV stv =(SamsungTV)ctx.getBean("stv");
	   stv.powerOff();
	   stv.powerOn();
	   stv.volumeDown();
	   stv.volumeUp();
     
   }
}
<?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.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">

	<!-- 
		해당 xml 파일 생성 방법
		1.Spring Bean Configuration File
		2.하단 탭중 Namespace에서 Context체크 -> 상단 Beans 태그 context 추가
		
		
	 -->
	<!-- 
		spring Bean Configuration File
		Bean 생성방법1
		<bean id ="객체명(인스턴스명)" class="클래스명">
			<peoperty name="필드명1">
				<value>값1</value>  //문자든 숫자든 큰 따옴표 없이 그냥 적는다
			</property>
			<peoperty name="필드명1" value="값2">  //문자든 숫자든 큰 따옴표로 적는다
			** property 를 이용하여 set주입
			
			<constructor-arg name="필드명3 value="값3"/>
			** constructor 를 이용하여 생성자 주입
		</bean>
	
	 -->
	<!-- 
		scope : singleton, prototype
		singleton:객체를 하나만 만든다
		prototype:객체를 새로 계속 만든다
		default 값은 singleton 이다.
	 -->
	 
	 <bean id="ltv" class="org.joonzis.DI_3.LgTV" scope="prototype"></bean>
	 <!-- LgTV ltv = new LgTV();  -->
	 
	 <bean id="stv" class="org.joonzis.DI_3.SamsungTV"></bean>
	 <!-- SamsungTV stv = new SamsungTV(); -->
	 
</beans>