No sweet without sweat

GenericXMLApplicationContext 본문

JAVA

GenericXMLApplicationContext

Remi 2022. 7. 27. 14:30
728x90
반응형

GenericXMLApplicationContext

- 최근에 스프링 부트를 많이 사용하면서 XML기반의 설정을 잘 안씀

- 아직 많은 레거시 프로젝트 들이 xml되어 있고, 또 xml을 사용하면 컴파일 없이

빈 설정 정보를 변경할 수 잇는 장점이 있음

src.main.resoruces.appConfig.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>



XmlAppContext

package hello.core.xml;
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.GenericXmlApplicationContext;

import static org.assertj.core.api.Assertions.assertThat;

public class XmlAppContext {

    @Test
    void xmlAppConfig(){
        ApplicationContext ac = new GenericXmlApplicationContext("appConfig.xml");
        MemberService memberService = ac.getBean("memberService", MemberService.class);
        assertThat(memberService).isInstanceOf(MemberService.class);
    }

}

728x90
반응형
Comments