새 프로젝트 생성
패키지와 인터페이스 및 클래스 생성
IHello.java
package kr.co.itwill.di;
public interface IHello {
public void sayHello(String name); //추상메소드
}//interface end
MessageKO1.java
package kr.co.itwill.di;
public class MessageKO1 implements IHello {
public MessageKO1() {
System.out.println("-----MessageKO1() 객체 생성됨");
}//end
@Override
public void sayHello(String name) {
System.out.println("안녕하세요~~" + name);
}//end
}//class end
MessageEN1.java
package kr.co.itwill.di;
public class MessageEN1 implements IHello {
public MessageEN1() {
System.out.println("-----MessageEN1() 객체 생성됨");
}//end
@Override
public void sayHello(String name) {
System.out.println("Hello~~" + name);
}//end
}//class end
생성
POJO 방식
HelloPOJO.java
package kr.co.itwill.di;
public class HelloPOJO {
public static void main(String[] args) {
//POJO 방식
IHello hello = null;
hello = new MessageKO1(); //다형성
hello.sayHello("손흥민");
hello = new MessageEN1();
hello.sayHello("TOM");
}//main() end
}//class end
스프링 빈 방식
xml 파일 생성
springbean.xml
<?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
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- springbean.xml -->
<!-- 스프링 빈 등록 -->
<bean id="msgKO" class="kr.co.itwill.di.MessageKO1"></bean>
<bean id="msgEN" class="kr.co.itwill.di.MessageEN1"></bean>
</beans>
클래스 생성
HelloBean.java
package kr.co.itwill.di;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
public class HelloBean {
public static void main(String[] args) {
//스프링 빈
Resource resource = new ClassPathResource("springbean.xml");
BeanFactory factory = new XmlBeanFactory(resource);
IHello hello = null;
hello = (IHello) factory.getBean("msgKO");
hello.sayHello("김연아");
hello = (IHello) factory.getBean("msgEN");
hello.sayHello("Jane");
}//main() end
}//class end
기능을 조금 더 추가하여 POJO방식과 스프링 빈 방식을 비교
MessageKO2, MessageEN2 클래스 생성
MessageKO2.java
package kr.co.itwill.di;
import javax.swing.JOptionPane;
public class MessageKO2 implements IHello {
public MessageKO2() {
System.out.println("-----MessageKO2() 객체 생성");
}
@Override
public void sayHello(String name) {
JOptionPane.showMessageDialog(null, "안녕하세요~~" + name);
}
}//class end
MessageEN2.java
package kr.co.itwill.di;
import javax.swing.JOptionPane;
public class MessageEN2 implements IHello {
public MessageEN2() {
System.out.println("-----MessageEN2() 객체 생성");
}
@Override
public void sayHello(String name) {
JOptionPane.showMessageDialog(null, "Hello~~" + name);
}
}//class end
POJO 방식
HelloPOJO2 클래스 생성
HelloPOJO2.java
package kr.co.itwill.di;
public class HelloPOJO2 {
public static void main(String[] args) {
IHello hello = null;
hello = new MessageKO2(); //다형성
hello.sayHello("손흥민");
hello = new MessageEN2();
hello.sayHello("John");
}//main() end
}//class end
스프링 빈 방식
springbean.xml
<?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
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- springbean.xml -->
<!-- 스프링 빈 등록 -->
<!--
<bean id="msgKO" class="kr.co.itwill.di.MessageKO1"></bean>
<bean id="msgEN" class="kr.co.itwill.di.MessageEN1"></bean>
-->
<bean id="msgKO" class="kr.co.itwill.di.MessageKO2"></bean>
<bean id="msgEN" class="kr.co.itwill.di.MessageEN2"></bean>
</beans>
HelloBean.java
package kr.co.itwill.di;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
public class HelloBean {
public static void main(String[] args) {
//스프링 빈
Resource resource = new ClassPathResource("springbean.xml");
BeanFactory factory = new XmlBeanFactory(resource);
IHello hello = null;
hello = (IHello) factory.getBean("msgKO");
hello.sayHello("김연아");
hello = (IHello) factory.getBean("msgEN");
hello.sayHello("Jane");
}//main() end
}//class end
POJO방식으로 한 HelloPOJO2를 새로 만든 것과 달리
스프링 빈 방식의 HelloBean은 수정이 필요 없다.
'⁂ MyBatis Framework > : 기본 익히기' 카테고리의 다른 글
[MyBatis3] #4-3 파일 업로드 및 댓글 게시판 만들기 : 상품 목록 페이지 (0) | 2022.11.11 |
---|---|
[MyBatis3] #4-2 파일 업로드 및 댓글 게시판 만들기 : 첫 페이지 만들기 (0) | 2022.11.10 |
[MyBatis3] #4-1 Spring Boot + MyBatis Framework 기반 파일 업로드 및 댓글 게시판 만들기 : 환경설정 (0) | 2022.11.10 |
[MyBatis3] #2 - CRUD (0) | 2022.11.09 |
[MyBatis3] #1 MyBatis 환경설정하기 (0) | 2022.11.08 |