클래스들
인터페이스
package xyz.itwill03.spring;
public interface MessageObject {
String getMessage();
}
인터페이스를 상속받은 2개의 클래스
package xyz.itwill03.spring;
public class HelloMessageObject implements MessageObject {
@Override
public String getMessage() {
return "Hello!!!";
}
}
-------------------------------
package xyz.itwill03.spring;
public class HiMessageObject implements MessageObject {
@Override
public String getMessage() {
return "Hi!!!";
}
}
포함관계 클래스
package xyz.itwill03.spring;
public class MessagePrint {
private MessageObject object;
public MessageObject getObject() {
return object;
}
public void setObject(MessageObject object) {
this.object = object;
}
public void messagePrint() {
String message=object.getMessage();
System.out.println("message="+message);
}
}
스프링 컨테이너
package xyz.itwill03.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MessagePrintApp {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("03_message.xml");
MessagePrint print=(MessagePrint)context.getBean("messagePrint");
print.messagePrint();
((ClassPathXmlApplicationContext)context).close();
}
}
스프링컨테이너
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="xyz.itwill03.spring.HelloMessageObject" id="helloMessageObject"/>
<bean class="xyz.itwill03.spring.HiMessageObject" id="hiMessageObject"/>
<bean class="xyz.itwill03.spring.MessagePrint" id="messagePrint">
<property name="object" ref="helloMessageObject"/>
</bean>
</beans>