SPRING/chapter02_DI
DI_8_set : AppleSpeaker.JAVA/SamsungTV.JAVA/SonySpeaker.JAVA/Speaker.JAVA/TV.JAVA/TVUser.JAVA/applicationContext8.xml
GAWON
2023. 6. 26. 19:10
<?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">
<!--
-->
<bean id="stv" class="org.joonzis.DI_8_set.SamsungTV">
<property name="speaker" ref="apple"/>
<property name="price" value="1000"/>
</bean>
<bean id="sony" class="org.joonzis.DI_8_set.SonySpeaker"></bean>
<bean id="apple" class="org.joonzis.DI_8_set.AppleSpeaker"></bean>
</beans>
package org.joonzis.DI_8_set;
public class AppleSpeaker implements Speaker{
public AppleSpeaker() {
System.out.println("-->AppleSpeaker 객체 생성");
}
@Override
public void volumeUp() {
System.out.println("-->AppleSpeaker 소리 올린다");
}
@Override
public void volumeDown() {
System.out.println("-->AppleSpeaker 소리 줄인다");
}
}
package org.joonzis.DI_8_set;
public class SamsungTV implements TV{
private Speaker speaker;
private int price;
public SamsungTV() {
System.out.println("--> SamsungTV 객체(1)생성");
}
public void setSpeaker(Speaker speaker) {
this.speaker = speaker;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public void powerOff() {
System.out.println("--> SamsungTV 전원 끈다(가격 : " + price + ")");
}
@Override
public void powerOn() {
System.out.println("--> SamsungTV 전원 켠다");
}
@Override
public void volumeDown() {
speaker.volumeDown();
}
@Override
public void volumeUp() {
speaker.volumeUp();
}
}
package org.joonzis.DI_8_set;
public class SonySpeaker implements Speaker{
public SonySpeaker() {
System.out.println("-->SonySpeaker 객체 생성");
}
public void volumeUp() {
System.out.println("-->SonySpeaker 소리 올린다");
}
public void volumeDown() {
System.out.println("-->SonySpeaker 소리 줄인다");
}
}
package org.joonzis.DI_8_set;
public interface Speaker {
public void volumeUp();
public void volumeDown();
}
package org.joonzis.DI_8_set;
public interface TV {
public void powerOn();
public void powerOff();
public void volumeUp();
public void volumeDown();
}
package org.joonzis.DI_8_set;
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("applicationContext8.xml");
TV stv =(SamsungTV)ctx.getBean("stv");
stv.powerOff();
stv.powerOn();
stv.volumeDown();
stv.volumeUp();
}
}