ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Poitras Christian <Christian.Poit...@ircm.qc.ca>
Subject RE: Using Struts with Spring DAO's in IBATIS
Date Mon, 30 Jun 2008 12:01:02 GMT
Hi,

I've done something close to this (my actions did not depend on Spring directly).
I've been using Struts/iBATIS Dao/SqlMap for a while. I've changed to Spring Dao. To use DI
in an "semi-automatic way", I've used the @SpringBean annotation from Stripes (since Spring
didn't support annotations back then).
To do injection without being aware of Spring (it tied my actions to Stripes, but you can
easily writte your own annotation to do the same thing based on Stripes code).

This is a part of a custom class I used for DI.

import net.sourceforge.stripes.integration.spring.SpringHelper;

/**

* Inject Spring dependence into object.

* If object was created by cglib, this method may not be able to set beans correctly.

* @param object Object.

*/

public static void injectBeans(Object object) {

SpringHelper.injectBeans(object, applicationContext);

}



A Struts action
public class MyAction extends Action {
    @SpringBean MyService myService;
    public MyAction() {
        SpringInjector.injectBeans(this);
    }
}


Stripes is available here http://www.stripesframework.org/display/stripes/Home

This will not relieve you of DI, but it's a possible way to get around dependency on spring
for your actions.

Christian



________________________________
From: Kenan Azam [mailto:azam.kenan@gmail.com]
Sent: Friday, June 27, 2008 5:52 PM
To: user-java@ibatis.apache.org
Subject: Using Struts with Spring DAO's in IBATIS

Hi there,
We have an application where we are using Struts as our web framework and IBATIS in the data
layer. We upgraded to the new version of ibatis which required to upgrade the DAO's to Spring
DAO's.

To use the Spring DAO's we started to use spring with struts. The only purpose of Spring was
to inject the dao's into the service classes and into my Struts Action. However , this approach
ties my Struts framework with Spring. Because, the beans.xml file tries to see Struts Action
classes as Beans to do its injection.


<action-mappings>

        <action
                path="/employeeSetUp"
                name="employeeForm"

                type="org.springframework.web.struts.DelegatingActionProxy"



This approach however, ties Ibatis to Spring and forces us to use Spring in our web layer
as well.

Can I use Spring DAO's without doing dependency injection?
Has anyone used Ibatis Spring DAO's in Struts without making Struts aware of the existence
of Spring. Any pointers are appreciated.

Thanks.

Mime
View raw message