파게로그

XML Configuration을 Java Configuration으로 변경하기 본문

콤퓨타 왕기초/Spring

XML Configuration을 Java Configuration으로 변경하기

파게 2021. 4. 20. 03:36

XML Configuration을 Java Configuration으로 변경하기

 

XML 파일의 내용을 Java 소스코드로 작성한다.

 

설정을 위한 자바 클래스라는 것을 표시하기 위해서, @Configuration annotation을 추가한다.

 

<context:component-scan base-package="admin.school.ui" />

@ComponentScan("admin.school.ui")

 

<context:component-scan base-package="admin.school.ui, admin.school.entity" />

@ComponentScan({"admin.school.ui", "admin.school.entity"})

 

<bean id="exam" class="admin.school.entity.MidTermExam" />

스프링에게 객체 생성을 부탁함

@Bean

public Exam exam() { // 컨테이너에 담겨졌을 때 해당 객체의 이름(파란색 글씨, bean id와 동일)

  return new MidTermExam();

}

이건 내가 객체를 직접 만드는건데...?라고 생각이 들지만,

@Bean annotation을 통해 IoC Container에 생성된 객체를 담는 것이다.

 

 

 

그리고

 

ApplicationContext context = new ClassPathXmlApplicationContext("com/ddoongi/settings.xml");

대신

ApplicationContext context = new AnnotationConfigApplicationContext(AdminSchoolConfig.class);

를 통해 클래스로 configure하도록 설정한다.

 

 

config 클래스가 여러개라면?

 

public static void main(String[] args) {
    AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
    ctx.register(AppConfig.class, OtherConfig.class);
    ctx.register(AdminSchoolConfig.class);
    ctx.refresh(); // 설정된 내용을 다시 읽어들임
    
    ExamConsole console = (ExamConsole)ctx.getBean("console");
    console.print();
}

 

Comments