2008. 8. 27. 19:49ㆍWeb Programming
이렇게 Assembler 역할을 하는 것이 다름아닌 스프링의 XML 외계어 이다. 다시 말하면 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-2.0.xsd">
<bean name="writeArticleService" class="com.dependencyInjection.sample.WriteArticleServiceImpl">
<constructor-arg>
<ref bean="articleDao"/>
</constructor-arg>
</bean>
<bean name="articleDao" class="com.dependencyInjection.sample.MySqlDao">
</bean>
</beans>
요것이 바로 내가 만들어준 applicationContext.xml 파일이다. bean 이라는 태그는 그야말로 빈 객체를 정의 하는 것이고.. 빈 객체의 변수명이나 파라미터 값을 설정해 주고.. 클래스가 있는 패스를 설정하기도 한다. 여러가지 설정 값들을 정의한다고 보면 되겠다.
그다음은 이걸 실행시키는 소스코드이다.
package com.dependencyInjection.sample;
import org.springframework.beans.factory.*;
import org.springframework.beans.factory.xml.*;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
public class Exec {
public static void main(String[] args) {
Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory beanFactory = new XmlBeanFactory(resource);
WriteArticleService articleService = (WriteArticleService) beanFactory.getBean("writeArticleService");
articleService.write(new Article());
}
}
이걸 실행시키면.. ^^ 뭐.. 콘솔창에 출력되는것 이외에 다른 특별한것은 없다. 다만 신기한 점은.. XmlBeanFactory 라는 녀석이 XML 설정 값을 읽어와서 빈 객체를 반환해 준다는 점이다.. 좀더 배워봐야 알듯하다.