김갱환
맨땅에 코딩
김갱환
전체 방문자
오늘
어제
  • 분류 전체보기 (239)
    • ⁂ 맨땅에 코딩 (11)
      • : Story (3)
      • : MiniProject 'MyWeb' (1)
      • : Final Project (5)
      • : Josa-Moa 한국어 조사 처리 프로젝트 (1)
    • —————Frontend——————————————.. (0)
    • ⁂ HTML (10)
      • : 기본 익히기 (10)
    • ⁂ CSS (15)
      • : 기본 익히기 (15)
    • ⁂ Java Script (32)
      • : 기본 익히기 (28)
      • : 자바스크립트 라이브러리 (1)
      • : 연습 문제 (3)
    • ⁂ jQuery (11)
      • : 기본 익히기 (11)
    • ⁂ Bootstrap (3)
      • : 기본 익히기 (3)
    • ⁂ TailWind CSS (1)
    • ⁂ AJAX (5)
      • : 기본 익히기 (5)
    • ⁂ Vue.js (3)
      • : 기본 익히기 (3)
    • —————DB : Data Base————————.. (0)
    • ⁂ Oracle DB (27)
      • : 기본 익히기 (24)
      • : 연습 문제 (3)
    • ⁂ MyBatis Framework (15)
      • : 기본 익히기 (15)
    • —————Backend———————————————.. (0)
    • ⁂ Java (62)
      • : 기본 익히기 (42)
      • : JDBC - Java DataBase Conn.. (4)
      • : Crawling (2)
      • : 독학으로 공부하기(과거) (11)
      • : 연습문제 (3)
    • ——————Web————————————————— (0)
    • ⁂ JSP (28)
      • : 기본 익히기 (28)
    • ⁂ Spring FrameWork (15)
      • : Legacy Project (1)
      • : 기본 익히기(Boot 기반) (14)
    • ——————————————————————— (0)
    • ⁂ Error Note (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바
  • http에러메세지
  • 객체지향프로그래밍
  • 코딩 #코딩공부 #상수 #리터럴 #형변환 #개발자 #자바 #자바공부 #자바독학
  • 연산자 #기본연산자 #코딩 #자바 #독학 #자바공부 #자바연산자
  • httperror
  • 백앤드
  • 개발자
  • 비트연산자 #코딩공부 #자바공부 #코딩 #자바 #프로그래밍 #개발자
  • 프론트앤드
  • 자바공부
  • 코딩공부 #코딩 #자바 #자바독학 #자바공부 #개발자 #프론트앤드 #백앤드 #풀스택
  • ErrorPage
  • 코딩공부 #자바공부
  • 풀스택
  • 코딩 #코딩공부 #프론트앤드 #백앤드 #풀스택개발자
  • HTML공부
  • web.xml수정
  • 코딩
  • 코딩공부

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김갱환
⁂ MyBatis Framework/: 기본 익히기

[MyBatis3] #3 의존성 주입(POJO방식과 Bean방식)

⁂ MyBatis Framework/: 기본 익히기

[MyBatis3] #3 의존성 주입(POJO방식과 Bean방식)

2022. 11. 9. 10:04

새 프로젝트 생성

 

 

패키지와 인터페이스 및 클래스 생성

 

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
  • POJO 방식
  • 스프링 빈 방식
  •  
  • POJO 방식
  • 스프링 빈 방식
'⁂ MyBatis Framework/: 기본 익히기' 카테고리의 다른 글
  • [MyBatis3] #4-2 파일 업로드 및 댓글 게시판 만들기 : 첫 페이지 만들기
  • [MyBatis3] #4-1 Spring Boot + MyBatis Framework 기반 파일 업로드 및 댓글 게시판 만들기 : 환경설정
  • [MyBatis3] #2 - CRUD
  • [MyBatis3] #1 MyBatis 환경설정하기
김갱환
김갱환
코딩의 코자도 모르는 이의 공부 기록장

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.