

BeanFactory : 최상위 인터페이스 / 빈을 관리하고 조회 / getBean()제공
ApplicationContext : BeanFactory 뿐만 아니라 다양한 부가기능이 있다
🔍 : https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationContext.html

현재까지는 어노테이션을 통해 설정 파일을 만들었다.
<?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="discountPolicy" ref="discountPolicy"></constructor-arg>
<constructor-arg name="memberRepository" ref="memberRepository"></constructor-arg>
</bean>
<bean id="discountPolicy" class="hello.core.Discount.RateDiscountPolicy"/>
</beans>
package hello.core;
import hello.core.member.Member;
import hello.core.member.MemberService;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.GenericApplicationContext;
public class XmlCofigTest {
@Test
void xmlAppContext(){
ApplicationContext ac = new GenericApplicationContext("config.xml");
MemberService memberService = ac.getBean("memberService", MemberService.class);
Assertions.assertThat(memberService).isInstanceOf(MemberService.class);
}
}
xml 파일과 어노테이션으로 설정한 파일 유사하다.