You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Ja...@nexweb.org on 2008/01/04 14:43:07 UTC
Converting iBATIS DAO to Spring DAO in non-web application
Hi,
I want to convert my iBATIS DAO to Spring DAO. My Java project is not web
project. But its application running using class that has main() method.
So in order to use Spring DAO, I had to specially create web\WEB-INF
folder and add web.xml file, spring.xml file to it.
web.xml has below content:
<?xml version = '1.0' encoding = 'windows-1252'?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<description>web.xml file for OTM Web Application</description>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.nexweb.otm.spring.listeners.SpringInit</listener-class>
</listener>
</web-app>
spring.xml has below content:
<?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="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:org/nexweb/otm/ibatis/config/SqlMapConfig.xml</value>
</property>
<property name="useTransactionAwareDataSource">
<value>true</value>
</property>
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="sqlMapClientTemplate"
class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient">
<ref bean="sqlMapClient"/>
</property>
</bean>
<bean id="glogDao"
class="org.nexweb.otm.ibatis.dao.sqlmaps.GLogXMLSqlMapDAO">
<property name="sqlMapClient">
<ref bean="sqlMapClient"/>
</property>
</bean>
<bean id="xmlService"
class="org.nexweb.otm.ibatis.services.XmlService">
<constructor-arg index="0" ref="glogDao"/>
</bean>
</beans>
I also added SpringInit.java file as shown in
http://opensource.atlassian.com/confluence/oss/display/IBATIS/Converting+iBATIS+DAO+to+Spring+DAO.
Now, when I invoke SpringInit.getApplicationContext() method, its
returning me 'null'. The application is not calling contextInitialized()
when I run it thru the main() method call.
What should I do to set WebApplicationContext springContext ?
Thanks
Jasmin
******************************************************************************
ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION
Our domain name is changing. Please take note of the sender's
e-Mail address and make changes to your personal address list,
if needed. Both domains will continue to work, only for a limited
time.
******************************************************************************
This email and any files transmitted with it are intended solely for
the use of the individual or agency to whom they are addressed.
If you have received this email in error please notify the Navy
Exchange Service Command e-mail administrator. This footnote
also confirms that this email message has been scanned for the
presence of computer viruses.
Thank You!
******************************************************************************
Re: Converting iBATIS DAO to Spring DAO in non-web application
Posted by Christopher Lamey <cl...@localmatters.com>.
Yea, Spring is usually auto-init'd in a webapp, but for a standalone main()
program, you need to init the context yourself.
Here's an example with a classpath context:
http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#bea
ns-factory-instantiation
Cheers,
Chris
On 1/4/08 8:07 AM, "Richard Yee" <ry...@cruzio.com> wrote:
> You don't need to create a web\WEB-INF folder to use Spring. Look at
> using a GenericApplicationContext and a XmlBeanDefinitionReader. Look at
> the BeanFactory interface in the Spring documentation
>
> -Richard
>
> Jasmin_Mehta@nexweb.org wrote:
>>
>> Hi,
>>
>> I want to convert my iBATIS DAO to Spring DAO. My Java project is not
>> web project. But its application running using class that has main()
>> method. So in order to use Spring DAO, I had to specially create
>> web\WEB-INF folder and add web.xml file, spring.xml file to it.
>>
>> _web.xml has below content:_
>>
>> <?xml version = '1.0' encoding = 'windows-1252'?>
>> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
>> Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
>> <web-app>
>> <description>web.xml file for OTM Web Application</description>
>> <context-param>
>> <param-name>contextConfigLocation</param-name>
>> <param-value>/WEB-INF/spring.xml</param-value>
>> </context-param>
>>
>> <listener>
>>
>> <listener-class>org.springframework.web.context.ContextLoaderListener</listen
>> er-class>
>>
>> </listener>
>>
>> <listener>
>>
>> <listener-class>org.nexweb.otm.spring.listeners.SpringInit</listener-class>
>>
>> </listener>
>> </web-app>
>>
>> _spring.xml has below content:_
>>
>> <?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="propertyConfigurer"
>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
>> ">
>>
>> <property name="location" value="classpath:jdbc.properties"/>
>> </bean>
>> <bean id="dataSource"
>> class="org.apache.commons.dbcp.BasicDataSource">
>> <property name="driverClassName" value="${jdbc.driverClassName}"/>
>> <property name="url" value="${jdbc.url}"/>
>> <property name="username" value="${jdbc.username}"/>
>> <property name="password" value="${jdbc.password}"/>
>> </bean>
>> <bean id="sqlMapClient"
>> class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
>> <property name="configLocation">
>>
>> <value>classpath:org/nexweb/otm/ibatis/config/SqlMapConfig.xml</value>
>> </property>
>> <property name="useTransactionAwareDataSource">
>> <value>true</value>
>> </property>
>> <property name="dataSource">
>> <ref bean="dataSource"/>
>> </property>
>> </bean>
>> <bean id="sqlMapClientTemplate"
>> class="org.springframework.orm.ibatis.SqlMapClientTemplate">
>> <property name="sqlMapClient">
>> <ref bean="sqlMapClient"/>
>> </property>
>> </bean>
>>
>> <bean id="glogDao"
>> class="org.nexweb.otm.ibatis.dao.sqlmaps.GLogXMLSqlMapDAO">
>> <property name="sqlMapClient">
>> <ref bean="sqlMapClient"/>
>> </property>
>> </bean>
>>
>> <bean id="xmlService"
>> class="org.nexweb.otm.ibatis.services.XmlService">
>> <constructor-arg index="0" ref="glogDao"/>
>> </bean>
>> </beans>
>>
>>
>> I also added SpringInit.java file as shown in
>>
>> http://opensource.atlassian.com/confluence/oss/display/IBATIS/Converting+iBAT
>> IS+DAO+to+Spring+DAO.
>>
>>
>> *Now, when I invoke SpringInit.getApplicationContext() method, its
>> returning me 'null'. The application is not calling
>> contextInitialized() when I run it thru the main() method call.*
>>
>> *What should I do to set WebApplicationContext springContext ?*
>>
>> Thanks
>> Jasmin
>>
>> *****************************************************************************
>> **
>> *ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION
>> Our domain name is changing. Please take note of the sender's
>> e-Mail address and make changes to your personal address list,
>> if needed. Both domains will continue to work, only for a limited
>> time.
>>
*****************************************************************************>>
*
>> This email and any files transmitted with it are intended solely for
>> the use of the individual or agency to whom they are addressed.
>> If you have received this email in error please notify the Navy
>> Exchange Service Command e-mail administrator. This footnote
>> also confirms that this email message has been scanned for the
>> presence of computer viruses.
>>
>> Thank You!
>> *****************************************************************************
>> ***
>>
>
Re: Converting iBATIS DAO to Spring DAO in non-web application
Posted by Richard Yee <ry...@cruzio.com>.
You don't need to create a web\WEB-INF folder to use Spring. Look at
using a GenericApplicationContext and a XmlBeanDefinitionReader. Look at
the BeanFactory interface in the Spring documentation
-Richard
Jasmin_Mehta@nexweb.org wrote:
>
> Hi,
>
> I want to convert my iBATIS DAO to Spring DAO. My Java project is not
> web project. But its application running using class that has main()
> method. So in order to use Spring DAO, I had to specially create
> web\WEB-INF folder and add web.xml file, spring.xml file to it.
>
> _web.xml has below content:_
>
> <?xml version = '1.0' encoding = 'windows-1252'?>
> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
> Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
> <web-app>
> <description>web.xml file for OTM Web Application</description>
> <context-param>
> <param-name>contextConfigLocation</param-name>
> <param-value>/WEB-INF/spring.xml</param-value>
> </context-param>
>
> <listener>
>
> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
>
> </listener>
>
> <listener>
>
> <listener-class>org.nexweb.otm.spring.listeners.SpringInit</listener-class>
>
> </listener>
> </web-app>
>
> _spring.xml has below content:_
>
> <?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="propertyConfigurer"
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>
> <property name="location" value="classpath:jdbc.properties"/>
> </bean>
> <bean id="dataSource"
> class="org.apache.commons.dbcp.BasicDataSource">
> <property name="driverClassName" value="${jdbc.driverClassName}"/>
> <property name="url" value="${jdbc.url}"/>
> <property name="username" value="${jdbc.username}"/>
> <property name="password" value="${jdbc.password}"/>
> </bean>
> <bean id="sqlMapClient"
> class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
> <property name="configLocation">
>
> <value>classpath:org/nexweb/otm/ibatis/config/SqlMapConfig.xml</value>
> </property>
> <property name="useTransactionAwareDataSource">
> <value>true</value>
> </property>
> <property name="dataSource">
> <ref bean="dataSource"/>
> </property>
> </bean>
> <bean id="sqlMapClientTemplate"
> class="org.springframework.orm.ibatis.SqlMapClientTemplate">
> <property name="sqlMapClient">
> <ref bean="sqlMapClient"/>
> </property>
> </bean>
>
> <bean id="glogDao"
> class="org.nexweb.otm.ibatis.dao.sqlmaps.GLogXMLSqlMapDAO">
> <property name="sqlMapClient">
> <ref bean="sqlMapClient"/>
> </property>
> </bean>
>
> <bean id="xmlService"
> class="org.nexweb.otm.ibatis.services.XmlService">
> <constructor-arg index="0" ref="glogDao"/>
> </bean>
> </beans>
>
>
> I also added SpringInit.java file as shown in
> http://opensource.atlassian.com/confluence/oss/display/IBATIS/Converting+iBATIS+DAO+to+Spring+DAO.
>
>
> *Now, when I invoke SpringInit.getApplicationContext() method, its
> returning me 'null'. The application is not calling
> contextInitialized() when I run it thru the main() method call.*
>
> *What should I do to set WebApplicationContext springContext ?*
>
> Thanks
> Jasmin
>
> *******************************************************************************
> *ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION
> Our domain name is changing. Please take note of the sender's
> e-Mail address and make changes to your personal address list,
> if needed. Both domains will continue to work, only for a limited
> time.
> ******************************************************************************
> This email and any files transmitted with it are intended solely for
> the use of the individual or agency to whom they are addressed.
> If you have received this email in error please notify the Navy
> Exchange Service Command e-mail administrator. This footnote
> also confirms that this email message has been scanned for the
> presence of computer viruses.
>
> Thank You!
> ********************************************************************************
>