최신글
hyeonga_code
Spring_Spring DI_Dependency Injection_XML 설정_Spring IoC 본문
반응형
- 스프링 IoC
- 소스코드를 변경하지 않고 매개 변수를 이요하여 객체를 변경할 수 있도록 구현합니다.
- 스프링 설정 파일 생성 및 스프링 컨테이너 구동
1) 클라이언트가 스프링 설정 파일을 로딩하여 컨테이너를 구동합니다.
2) 스프링 설정 파일에 bean 등록된 객체를 생성
3) getBean() 메소드로 bean에 설정한 객체를 요청
4) 객체를 반환
- src/main/resources > Spring Bean Configuration File 생성하기
'applicationContext.xml'
<bean id="tv" class="basic.spring.polymorphism.SamsungTV" /> 추가
<bean id="tv2" class="basic.spring.polymorphism.LgTV2" />
=====
1
2
3
4
5
6
7
8
9
|
<?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 id="tv" class="basic.spring.polymorphism.SamsungTV" />
<bean id="tv2" class="basic.spring.polymorphism.LgTV2" />
</beans>
|
- src/main/java > basic.spring.polymorphism > 'TVUser4.java' 클래스 생성
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package basic.spring.polymorphism;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class TVUser4 {
public static void main(String[] args) {
AbstractApplicationContext fac = new GenericXmlApplicationContext("applicationContext.xml");
TV tv = (TV)fac.getBean("tv");
tv.powerOn();
tv.volumeUp();
tv.volumeDown();
tv.powerOff();
System.out.println();
TV tv2 = (TV)fac.getBean("tv2");
tv2.powerOn();
tv2.volumeUp();
tv2.volumeDown();
tv2.powerOff();
fac.close();
}
}
|
>>> TV를 변경할 때 applicationContext.xml 파일만 수정하면 언제든 변경할 수 있습니다.
반응형
'Spring' 카테고리의 다른 글
Spring_MVC 프로젝트 기본 시작 (0) | 2023.12.15 |
---|---|
Spring_다형성을 이용한 코드 작성 (0) | 2023.12.14 |
Spring_스프링 프레임워크 비교_디자인 패턴을 이용한 방식 (0) | 2023.12.14 |
Spring_스프링 프레임워크 비교_다형성을 이용한 방식 (0) | 2023.12.14 |
Spring_스프링 프레임워크 비교_이전에 사용한 방식으로 작성하기 (0) | 2023.12.13 |