Spring(IoC)_02

2025. 1. 20. 17:41·Spring, Boot/기초 내용 정리

2025-01-20

 

 

 

 

 

 

==> SamsungTV 생성
SamsungTV --> 전원 켜기
SamsungTV --> 소리 올리기
SamsungTV --> 소리 내리기
SamsungTV --> 전원 끄기

 

package com.spring.java3;

/*
 * IoC(Inversion Of Control : 제어의 역전 - 역제어 =/ 순제어)
 * - 제어 : 객체(Object)에 대한 제어를 말함.
 * - 제어 : Object에서 제어는 두 가지로 나뉘어 짐
 * 		   - 객체에 대한 생성(new 키워드)
 * 		   - 객체와 객체 간의 의존 관계
 */

public class LgTV implements TV{

	public LgTV() {
		System.out.println("==> LgTV 생성");
	} // 기본 생성자
	
	// overriding 되어있는 상태
	public void turnOn() {
		System.out.println("LgTV --> 전원 켜기");
	}
	
	public void turnOff() {
		System.out.println("LgTV --> 전원 끄기");
	}
	
	public void soundUp() {
		System.out.println("LgTV --> 소리 올리기");
	}
	
	public void soundDown() {
		System.out.println("LgTV --> 소리 내리기");
	}
	
}

 

package com.spring.java3;

/*
 * IoC(Inversion Of Control : 제어의 역전 - 역제어 =/ 순제어)
 * - 제어 : 객체(Object)에 대한 제어를 말함.
 * - 제어 : Object에서 제어는 두 가지로 나뉘어 짐
 * 		   - 객체에 대한 생성(new 키워드)
 * 		   - 객체와 객체 간의 의존 관계
 */

public class SamsungTV implements TV {

	public SamsungTV() {
		System.out.println("==> SamsungTV 생성");
	} // 기본 생성자
	
	
	@Override
	public void turnOn() {
		System.out.println("SamsungTV --> 전원 켜기");
	}
	
	@Override
	public void turnOff() {
		System.out.println("SamsungTV --> 전원 끄기");
	}
	
	@Override
	public void soundUp() {
		System.out.println("SamsungTV --> 소리 올리기");
	}
	
	@Override
	public void soundDown() {
		System.out.println("SamsungTV --> 소리 내리기");
	}
	
}

 

package com.spring.java3;

/*
 * IoC(Inversion Of Control : 제어의 역전 - 역제어 =/ 순제어)
 * - 제어 : 객체(Object)에 대한 제어를 말함.
 * - 제어 : Object에서 제어는 두 가지로 나뉘어 짐
 * 		   - 객체에 대한 생성(new 키워드)
 * 		   - 객체와 객체 간의 의존 관계
 */

public class GoogleTV implements TV {

	public GoogleTV() {
		System.out.println("==> GoogleTV 생성");
	} // 기본 생성자
	
	
	@Override
	public void turnOn() {
		System.out.println("GoogleTV --> 전원 켜기");
	}
	
	@Override
	public void turnOff() {
		System.out.println("GoogleTV --> 전원 끄기");
	}
	
	@Override
	public void soundUp() {
		System.out.println("GoogleTV --> 소리 올리기");
	}
	
	@Override
	public void soundDown() {
		System.out.println("GoogleTV --> 소리 내리기");
	}
	
}

 

package com.spring.java3;

public interface TV {

	void turnOn();

	void turnOff();

	void soundUp();

	void soundDown();

}

 

package com.spring.java3;

import org.springframework.context.support.GenericXmlApplicationContext;

public class TVUser {

	public static void main(String[] args) {
		
		// 현재 코드의 개념이 IoC 개념이다.
		// 스프링 컨테이너를 생성하자.
		GenericXmlApplicationContext container = 
				new GenericXmlApplicationContext("applicationContext.xml");
		
		// 컨테이터로 부터 객체를 검색(look up)한다
		TV tv = (TV)container.getBean("tv");	// xml파일의 id를 가져온다
		
		tv.turnOn(); 		// 전원을 켜는 메서드 호출
		
		tv.soundUp(); 		// 볼륨을 올리는 메서드 호출
		
		tv.soundDown(); 	// 볼륨을 내리는 메서드 호출
		
		tv.turnOff(); 		// 전원을 끄는 메서드 호출

	}

}

 

<?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">

	<!-- 스프링 컨테이너가 생성할 객체를 bean으로 등록을 한다. -->
	
	<bean id="tv" class="com.spring.java3.GoogleTV"/>

</beans>

'Spring, Boot > 기초 내용 정리' 카테고리의 다른 글

Spring(DI)_01_03  (0) 2025.01.21
Spring(DI)_01_02  (0) 2025.01.21
Spring(DI)_01_01  (0) 2025.01.21
Spring(IoC)_03  (0) 2025.01.21
Spring(IoC)_01  (0) 2025.01.20
'Spring, Boot/기초 내용 정리' 카테고리의 다른 글
  • Spring(DI)_01_02
  • Spring(DI)_01_01
  • Spring(IoC)_03
  • Spring(IoC)_01
mw41817
mw41817
일생의 개발 기록 저장소
  • mw41817
    IT 개발 일지
    mw41817
    • Index (487)
      • HTML (36)
        • 기초 내용 정리 (36)
      • CSS (29)
        • 기초 내용 정리 (29)
      • JavaScript (60)
        • 기초 내용 정리 (60)
      • JQuery (38)
        • 기초 내용 정리 (38)
      • Java (232)
        • 기초 내용 정리 (232)
      • JSP (46)
        • 기초 내용 정리 (46)
      • Spring, Boot (31)
        • 기초 내용 정리 (31)
      • DB (5)
        • Oracle SQL (5)
      • Code WorkBook (6)
        • programmers (6)
        • Baekjoon (0)
      • 기타 (1)
        • 유용한 사이트 (3)
  • 전체
    오늘
    어제
  • 글쓰기 관리
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 카테고리
    • 주인장 GitHub
  • 공지사항

  • 인기 글

  • 태그

    html #코딩 #프로그래밍 #기초
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
mw41817
Spring(IoC)_02
상단으로

티스토리툴바