DI를 알아봤으니 DI에 대한 예제를 한번 보겠습니다. 밑에 코드에서 exam이라는 객체를 InlineExamConsole객체에 조립하고 있습니다. 이러한 과정을 DI라고 합니다. 이때 Inline으로 출력하는 것이 아닌 Grid 형식의 콘솔이 필요할 경우 exam을 GridExamConsole에 바꿔 꽂아주면 됩니다.
Exam exam = new OhExam();
ExamConsole console = new InlineExamConsole(exam); // DI
//ExamConsole console = new GridExamConsole(exam);
console.print();
하지만 이러한 과정은 코드의 수정이 불가피합니다. 하지만 이 부분을 설정으로 빼서 작성하면 스프링에서 우리가 코드를 따로 수정해주지 않아도 알아서 DI작업을 수행해줍니다.