토비의 스프링 1장: 오브젝트와 의존관계
XML 설정
스프링에서는 ApplicationContext에서 Factory 자바 클래스를 이용하는 것 외에도 다양한 방법으로 DI 의존관계 설정정보를 만들 수 있다. 가장 대표적인것이 바로 XML이다.
o 장점
- 텍스트파일이라 다루기 쉬움
- 별도의 빌드 작업이 없음
- 빠르게 변경사항을 반영할 수 있음
- 스키마나 *DTD를 이용한 포맷확인이 가능
*DTD(Document Type Definition)
: XML파일 내부 <!DOCTYPE>.. 사이에 쓰여진 부분으로 XML 데이터를 validate.
자 그럼 이전 Factory 자바 클래스의 @Configuration, @Bean으로 나타냈던 부분을 XML로 변경해보자.
- @Configuration은 <beans>으로 변경된다.
- @Bean은 <bean>이 되고, 빈은 getBean()으로 가져올 메소드 이름이 빈의 이름(id) / 실제 생성되는 클래스명이 빈의 클래스(class) / 수정자 메소드를 통해 주입되는 의존관계가 있을 때, 의존 오브젝트의 정보(property) 이렇게 3가지 정보를 가진다.
- <property>는 의존 오브젝트 주입을 위한 수정자 메소드 명을 name / 주입되는 빈의 이름을 ref로 가진다. (value을 가질 수도 있음)
applicationContext.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-3.0.xsd">
<bean id="aSettingMaker" class="a.b.c...ASettingMaker" />
<bean id="bSettingMaker" class="a.b.c...BSettingMaker" />
<bean id="solution" class="a.b.c...Solution">
<property name="settingMaker" ref="aSettingMaker"/> <!-- a, b.. 선택 가능-->
</bean>
XML파일을 작성한 뒤에는 이 설정정보를 클라이언트의 ApplicationContext로 사용하기 위해 다음과 같은 코드를 써준다.
SolutionTest.java
public class SolutionTest {
public static void main(String[] args) {
// Factory 자바 클래스 사용
// ApplicationContext context = new AnnotationConfigApplicationContext(SolutionFactory.class);
// XML 사용
ApplicationContext context = new GenericXmlApplicationContext("applicationContext.xml");
Solution aSolution = context.getBean("solution", Solution.class);
}
}
[참고서적] http://www.acornpub.co.kr/book/toby-spring3.1-vol1#spring3
'책책책 > 토비의 스프링 3.1' 카테고리의 다른 글
[Spring] 자바 테스팅 프레임워크 JUnit (기본편) (0) | 2021.07.20 |
---|---|
[Spring] 자바 테스팅 프레임워크 JUnit (개념편) (0) | 2021.07.16 |
[Spring] 의존관계 주입 (DI: Dependency Injection) (0) | 2021.07.01 |
[Spring] 스프링 IoC컨테이너 ApplicationContext (0) | 2021.07.01 |
[Spring] 제어의 역전 (IoC: Inversion of Control) (0) | 2021.06.05 |