[add] 다양한 설정 형식 지원 - 자바 코드, XML [#13] #19
이 전까지는 자바 코드로 설정하는 법을 배웠는데 이번에는 XML로 설정하는 법을 배워봤다.
(아 이렇게 동작하는 구나 정도로만 알면 될듯하다.)
ApplicationContext를 구현한 것 중에 하나가 이 전에 사용했던
AnnotationConfig 설정 정보를 사용하는 ApplicationContext 라고 보면 된다.
(AppConfig class를 사용함)
- 주로 사용
ApplicationContext를 구현한 것 중에 GenericXml ApplicationContext도 있다.
자바 코드가 아니라 xml이라는 문서를 설정 정보로 사용한다.
어노테이션 기반 자바 코드 설정 사용
new AnnotationConfigApplicationContext(AppConfig.class)
AnnotationConfigApplicationContext 클래스를 사용하면서 자바 코드로된 설정 정보를 넘기면 된다.
XML 설정 사용 잘 사용 안함
XML을 사용하면 컴파일 없이 빈 설정 정보를 변경할 수 있는 장점
XmlAppContext 작성 후 appConfig.xml을 만들어준다.
xml은 resources 밑에 둔다. (자바 코드가 아닌 경우 모두 resource 아래에)
AppConfig에 빈으로 등록한 코드
@Bean // 스프링 컨테이너에 등록
public MemberService memberService() {
return new MemberServiceImpl(memberRepository());
}
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
=
<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="memberRepository" class="hello.core.member.MemoryMemberRepository"/>
memberRepository가
<bean id="memberService" class="hello.core.member.MemberServiceImpl">
<constructor-arg name="memberRepository" ref="memberRepository"/>
</bean>
ref로 생성자에서 넘어간다.
실제 구현 객체는 MemoryMemberRepository
<bean id="memberRepository" class="hello.core.member.MemoryMemberRepository"/>
'TIL' 카테고리의 다른 글
189일차(모험 98일차) - 싱글톤 컨테이너 (0) | 2022.03.22 |
---|---|
188일차(모험 97일차) - 싱글톤 패턴 (0) | 2022.03.21 |
184일차(모험 93일차) - 정리 + BeanFactory와 ApplicationContext (0) | 2022.03.17 |
183일차(모험 92일차) - 스프링 빈 조회 - 상속 관계 (0) | 2022.03.16 |
182일차(모험 91일차) - 스프링 빈 조회 - 동일한 타입이 둘 이상 (0) | 2022.03.15 |