java application 에서 ApplicationContext load 하기

자바(JAVA)

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>

 


Posted by 녹두장군
TAG ,