복습

스프링 컨테이너 설정 - 자바 코드, XML / 스프링 빈 메타 정보BeanDefinition 본문

Spring뿌시기/3주차 - 스프링 핵심 원리 기본편 2

스프링 컨테이너 설정 - 자바 코드, XML / 스프링 빈 메타 정보BeanDefinition

ykm1256 2022. 10. 19. 20:28

다양한 설정 형식 지원

  • 스프링 컨테이너는 다양한 형식의 설정 정보를 받아드릴 수 있도록 유연하게 설계되어 있음
    • 자바 코드, XML, Groovy 등

애노테이션 기반 자바 코드 설정

  • new AnnotationConfigApplicationContext(AppConfig.class)
  • 자바 코드로 작성한 설정 정보인 AppConfig 클래스를 파라미터로 넘겨준다.

XML 설정 사용

  • 최근에는 스프링 부트를 많이 사용하면서 XML 기반의 설정은 잘 사용하지 않음
  • GenericXmlApplicationContext를 사용하여 xml 설정 파일을 파라미터로 넘겨준다.
<bean id="memberService" class="hello.core.member.MemberServiceImpl">
	<constructor-arg name="memberRepository" ref="memberRepository" />
</bean>

<bean id="memberRepository" class="hello.core.member.MemoryMemberRepository" />
  • AppConfig에서 작성한 자바 코드와 아주 유사
  • bean 태그를 이용하여 등록하고, constructor 태그를 이용하여 생성자의 파라미터를 지정

BeanDefinition

  • BeanDefinition이라는 추상화를 통해 다양한 설정 형식(자바 코드, xml 등) 지원
  • 쉽게 말해 역할구현을 개념적으로 나눈 것
    • XML을 읽어서 BeanDefinition 생성
    • 자바 코드를 읽어서 BeanDefinition 생성
  • 스프링 컨테이너는 자바 코드인지 XML인지 몰라도 되며, BeanDefinition만 알면 된다.
  • BeanDefinition빈 설정 메타 정보라 한다.
  • 스프링 컨테이너는 메타 정보를 기반으로 스프링 빈 생성

스프링은 다양한 형태의 설정 정보를 BeanDefinition으로 추상화하여 사용한다.

 

 

 


출처

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com