standalone 인 java application 에서 Spring Application Context 를 어떻게 load 할수 있을까?
ClassPathXmlApplicationContext 으로 web application 에서 Spring application context 를 load 하곤한다. 하지만 java application 에서는 어떻게 application context 를 메모리에 올릴수 있을까? 이게 가능하면 Spring framework 에서 핵심기능인 DI 를 사용할수 있다.java application 도 spring 의 기능들을 자유롭게 이용할수 있는것이다.
아래 소스를 보면 ClassPathXmlApplicationContext 사용해서 load 하고 있으며 그아래 xml 내용은 DB 연결을 위한 DataSource 값에 대한 설정을 한것이다. 그리고 fileEventDao 는 DataSource 를 property 값으로 받고 있으며 내부적으로 DB 와 연동하여 작업을 할것이다.
import com.devdaily.springtest1.dao.FileEventDao;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main{
public static void main (String[] args) {
new Main();
}
public Main() {
ClassPathXmlApplicationContext ctx = new
ClassPathXmlApplicationContext("applicationContext.xml");
FileEventDao fileEventDao = (FileEventDao)ctx.getBean("fileEventDao");
fileEventDao.doInsert(fileEventType);
}
}
xml 정보
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="fileEventDao" class="com.devdaily.springtest1.dao.FileEventDao"> <property name="dataSource" ref="basicDataSource"/> </bean>
<bean id="basicDataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost/my_database" /> <property name="username" value="my_username" /> <property name="password" value="my_password" /> <property name="initialSize" value="5" /> <property name="maxActive" value="10" /> </bean> </beans>
'자바(JAVA)' 카테고리의 다른 글
Spring 을 java Application 에서 사용하기 (4) | 2009.08.17 |
---|---|
weblogic 9.2 에서 도메인(domain) 만들기 (0) | 2009.08.02 |
java Stream 입출력 관련 정리 (0) | 2009.08.02 |
web application 에서 ftp 파일을 Client 브라우저에 전송 (0) | 2009.08.02 |
ApplicationContext 생성시 xml 위치설정 (3) | 2009.07.30 |
자바 디자인 패턴 2 - Adapter (0) | 2009.07.28 |
자바 디자인 패턴 1 - Iterator (0) | 2009.07.20 |
WAS 에서 web.xml 설정시 xml 태그순서 (0) | 2009.07.20 |