반응형

 

 

"김영한 스프링 핵심 원리 기본편" 내용을 기반으로 작성한 내용입니다.

 

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

김영한 | 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보

www.inflearn.com

 

 

📝BeanFactory, ApplicationContext

BeanFactory

스프링 컨테이너의 최상위 인터페이스빈을 관리하고 조회하는 역할을 담당한다.

 

 

Application Context

김영한 스프링 핵심 원리 기본편

BeanFactory의 기능을 상속받아 더 많은 기능을 제공하고 BeanFactory를 사용하는 게 아닌 Application Context를 주로 사용한다

 

  • MessageSource
    • 국제화
  • Environment
    • 로컬, 개발, 운영 구분해서 처리
  • Application Event
    • 이벤트 발행하고 구독하는 모델 편리 지원
  • ResourceLoader
    • 파일, 클래스패스, 외부 등 리소스 편리하게 조회 기능

 

 

📝 Annotation 방식 vs XML 방식

Annotation 기반 코드

Annotation을 이용해 Bean에 등록하고 관리하기 쉽게 도와준다. 지금까지 해온 방식이다.

 

 

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"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://
www.springframework.org/schema/beans/spring-beans.xsd">
 	<bean id="memberService" class="hello.core.member.MemberServiceImpl">
 		<constructor-arg name="memberRepository" ref="memberRepository" />
 	</bean>
 	<bean id="memberRepository"class="hello.core.member.MemoryMemberRepository" />
 	<bean id="orderService" class="hello.core.order.OrderServiceImpl">
 		<constructor-arg name="memberRepository" ref="memberRepository" />
 		<constructor-arg name="discountPolicy" ref="discountPolicy" />
	</bean>
 	<bean id="discountPolicy" class="hello.core.discount.RateDiscountPolicy" />
</beans>

최근에는 스프링 부트를 많이 사용하며 XML 기반 설정은 잘 사용하지 않는다.

 

📝 빈 설정 메타 정보 (BeanDefinition)

기본적으로 특정 Reader가 존재해 Bean 설정 정보를 읽고 메타 정보를 만들어 사용하게 된다. BeanDefinition에는 Bean의 메타정보들이 들어있다. 직접 Reader와 Definition을 Bean의 작성방식을 내 임의대로 커스텀해서 만들 수도 있지만 거의 사용되진 않는다.

 

반응형