Spring 에 대해 알아보자 - 2

Gyuhan Park·2021년 12월 5일
0

spring

목록 보기
2/18

Dependency Injection

Exam exam = new NewLecExam();
ExamConsole console = new InlineExamConsole(exam); // DI
ExamConsole console = new GridExamConsole(exam); //  DI
console.setExam(exam);

이렇게 인터페이스 사용해서 상속받고 객체 조립하면 DI 임.
근데 이렇게 하면 결국 코드를 직접 수정하는 것과 똑같음.
그래서 생성한 인스턴스를 외부(XML)에 별도로 저장해서 필요한 상황에 적절하게 갈아끼움.

=> Spring을 이용하면 코드수정 없이 DI를 간편하게 할 수 있다 !

지시서 작성하기 : xml 파일

[spring bean configuration file]

bean id : 사용할 instance 명
bean class : 생성할 class 명. 중복될 수 있으므로 앞에 패키지 경로를 함께 적어줌.
property : class 내의 함수
property name : 함수명. 정해진 규칙 하에 setExam을 exam이라고 씀.
property value or ref : 인자값의 종류에 따라 value인지 ref인지 결정. exam은 객체이므로 ref.

// setting.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">
//Exam exam = new NewLecExam();
<bean id="exam" class="spring.di.entity.NewLecExam" />
// ExamConsole console = new GridExamConsole(exam);
<bean id="console" class="spring.di.ui.GridExamConsole" >
	// console.setExam(exam);
	<property name="exam" ref="exam"></property>
</bean>
profile
단단한 프론트엔드 개발자가 되고 싶은

0개의 댓글