본문 바로가기
Spring|Spring-boot

[Spring] Java Configuration

by oncerun 2020. 6. 22.
반응형

xml코드를 전부 자바 코드로 변경하기

 

<?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:context="http://www.springframework.org/schema/context"
	xmlns:p="http://www.springframework.org/schema/p"
	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">
	

</beans>
@ComponentScan({spring.id.ui",spring.id.ux"})
@Configuration
public class Config(){


}

 

@Configuration 어노테이션을 붙여 이 클래스가 설정 클래스임을 알려줍니다.

@ComponentScan을 이용해 스캔할 범위를 나열합니다. 자바문법에 맞게 배열 형식으로 여러 개를 지정할 수 있습니다.

 

 

<bean id = "exam" class"spring.id.entity.exam">이라는 xml설정을 변경할 수 있습니다.

 

@ComponentScan({spring.id.ui",spring.id.ux"})
@Configuration
public class Config(){

	@Bean
	public Exam exam(){
		return new Exam();
	}

}

메서드 이름으로 bean_id를 매칭해 가져오게 됩니다.  

가져온 Exam객체를 IoC컨테이너에 담게됩니다.

 

어노테이션을 이용해

ApplicationContext 생성하기 위해서는

 

ApplicationCotext context =

 new AnnotationConfigApplicationContext(Config.class); 로  설정 파일을 설정할 수 있으며

register()로 여러 개의 설정 파일을 등록할 수 있습니다.

 

 

ApplicationContext가 Bean을 가져오는 동작 방식
1. ApplicationContext는 앞의 @Configure 가 붙은 클래스를 설정 정보로 등록해두고 @Bean이 붙은 메서드의 이름을 가져와 Bean 목록을 만든다.

2. 클라이언트가 ApplicationContext의 getBean메서드를 호출하면 Bean 목록에서 요청한 이름이 있는지 찾는다.

3. 있다면 Bean을 생성하는 메소드를 호출해서 오브젝트를 생성시킨 후 클라이언트에게 리턴해 준다. (스프링에서 관리되는 Bean들이 기본 생성자가 필요한 이유)


반응형

댓글