본문 바로가기
BackEnd/Spring

[Spring] XML Configuration을 Java Configuration으로 변경하기

by summer_light 2021. 9. 8.

XML Configuration → Java Configuration

지시서 작성방식을 XML Configuration에서 Java Configuration으로 변경하는 법

 

 

<Configuration.xml>

<?xml version="1.0" encodoing="UTF-8">
<beans xmlns="http://www.springframework.org/schema/beans" ..>
	<context:component-scan base-package="spring.di.ui" />
    <bean id = "exam" class = "spring.di.entity.NewlecExam" />

</beans>

 

 

<NewlecDIConfig.java> 

: 위의 xml파일과 동일한 기능을 하는 java configuration 파일 

@ComponentScan("spring.di.ui") 
@Configuration 
public class NewlecAppConfig {	
    @Bean
    public Exam exam() {
    	return new NewlecExam();
	}
}

※ 세부 설명

@ComponentScan("spring.di.ui") 
//@ComponentScan({"spring.di.ui, spring.di.entity"}) 여러개 쓰려면 { } 필요 
//<context:component-scan base-package="spring.di.ui" />

@Configuration 
//다른 자바 파일과 다르게 설정 파일임을 명시해야 함!

public class NewlecAppConfig {	
	
    @Bean //컨테이너에 담아주는 역할
    public Exam exam() {//exam()의 exam은 bean의 id 역할 
    	return new NewlecExam();
	}
    //NewlecExam의 객체 exam을 정의한 것과 같은 역할 
}

 

 

물론, 원래 이렇게 불러 왔던 구문을

ApplicationContext context = new ClassPathXmlApplicationContext("spring/di/setting.xml");

 

 

아래와 같이 변경해야할 것이다. 

ApplicationContext context = new AnnotationConfigApplicationContext(NewlecDIConfig.class);

 

 

만약, 여러 개의 Config파일을 등록해야한다거나 할 때는 .register() 메소드를 사용하면 된다.

AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
//ctx.register(AppConfig.class, OtherConfig.class);
ctx.register(NewlecAppConfig.calss);
ctx.refresh();

 

댓글