public class InlineExamConsole implements ExamConsole
{
@Autowired //기본생성자를 생성하면서 객체를 생성할 수 있음.
@Qualifier("exam1")
private Exam exam;
public InlineExamConsole()
{
System.out.println("constructor");
}
public InlineExamConsole(Exam exam)
{
System.out.println("overloaded constructor");
this.exam = exam;
}
@Override
public void print()
{
if(exam == null)
System.out.println("xml파일에 객체가 존재하지 않음");
else
System.out.println("xml파일에 객체가 존재함");
}
pyblic void setExam(Exam exam)
{
System.out.println("setter");
this.exam = exam;
}
}
이와 같은 방법은 기본생성자가 없을 시 오류가 발생함으로 주의해야 한다.
public class InlineExamConsole implements ExamConsole
{
@Autowired(required = false) //객체가 없어도 ok, 오류방지
@Qualifier("exam1") //exam1 객체가 xml파일에 존재하지 않는상태
private Exam exam;
public InlineExamConsole()
{
System.out.println("constructor");
}
public InlineExamConsole(Exam exam)
{
System.out.println("overloaded constructor");
this.exam = exam;
}
@Override
public void print()
{
if(exam == null)
System.out.println("xml파일에 객체가 존재하지 않음");
else
System.out.println("xml파일에 객체가 존재함");
}
pyblic void setExam(Exam exam)
{
System.out.println("setter");
this.exam = exam;
}
}
이 경우에도 "@Autowired(required = false)" 를 사용했기 때문에 오류없이 코드를 실행시킬 수 있다.