<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
<context:annotation-config/>
<bean id="exam" class="com.ssafy.test.NewlecExam"/>
<bean id="console" class="com.ssafy.test.GridExamConsole">
</bean>
</beans>
package com.ssafy.test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class GridExamConsole implements ExamConsole {
private Exam exam;
public GridExamConsole() {
}
@Override
public void print() {
System.out.println(" ___________________");
System.out.println("| total | avg | ");
System.out.println(" ___________________");
System.out.printf("| %3d | %3.2f|\n", exam.total(), exam.avg());
System.out.println(" ___________________");
}
@Autowired
@Override
public void setExam(Exam exam) {
this.exam = exam;
}
}
...
public class Program {
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("com/ssafy/test/setting.xml");
ExamConsole console = context.getBean(ExamConsole.class);
console.print();
}
}
✔결과화면

Q. GridExamConsole 클래스의 setExam(@Autowired)은 뭘 보고 바인딩할까?
A. 자료형에 맞춰 참조할 수 있는 객체를 바인딩해준다.
Q. 그렇다면 동일한 자료형이 2개 이상이라면?
<bean id="exam" class="com.ssafy.test.NewlecExam" p:kor=10/>
<bean id="exam" class="com.ssafy.test.NewlecExam" p:kor=20/>
@Autowired
@Qualifier("exam1")
@Override
public void setExam(Exam exam) {
this.exam = exam;
}
A. @Qualifier("")를 이용하여 바인딩할 객체 이름을 설정해야 한다.