The class below can be used as a base to GWT RPC server-side classes
to inject spring dependencies
package com.al.gwtutil;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import org.springframework.beans.factory.access.BeanFactoryLocator;
import org.springframework.beans.factory.access.BeanFactoryReference;
import
org.springframework.beans.factory.access.SingletonBeanFactoryLocator;
import
org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.context.ApplicationContext;
/**
* @author alouet
*/
public abstract class SpringDependencyInjectionRemoveServiceServlet
extends RemoteServiceServlet {
public SpringDependencyInjectionRemoveServiceServlet() {
super();
// requires beanRefFactory.xml file to be in the classpath
BeanFactoryLocator bfl =
SingletonBeanFactoryLocator.getInstance();
// requires one bean with id gwt-template-app to be defined in
beanRefFactory.xml ( typically a ClassPathXmlApplicationContext)
BeanFactoryReference bfr = bfl.useBeanFactory("gwt-context");
ApplicationContext ac = (ApplicationContext)bfr.getFactory();
AutowireCapableBeanFactory beanFactory =
ac.getAutowireCapableBeanFactory(); // process annotation callbacks
beanFactory.autowireBeanProperties(this,
AutowireCapableBeanFactory.AUTOWIRE_NO, true); // apply annotation-
driven dependency injection
beanFactory.initializeBean(this,
"DummyNameFrom_SpringDependencyInjectionRemoveServiceServlet");
//
apply callbacks
}
}
for example:
package com.al.templategwtapp.server;
import javax.servlet.ServletException;
import com.al.gwtutil.SpringDependencyInjectionRemoveServiceServlet;
import com.al.templategwtapp.biz.MyBizClass;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Configurable;
/**
* @author Arnaud Louet
*/
public class SampleServiceImpl extends
SpringDependencyInjectionRemoveServiceServlet implements
com.al.templategwtapp.client.SampleService {
@Autowired // indication to inject actual
bean from spring
container
private MyBizClass myBean;
public SampleServiceImpl() {
super();
}
public String getCurrentTime() {
return myBean.getCurrentTimeAsString();
}
}
2 Config files are required: beanRefFactory.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://
www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="gwt-context" lazy-init="true"
class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
<value>com/al/templategwtapp/server/gwt-template-app-
applicationContext.xml</value>
</constructor-arg>
</bean>
</beans>
and a file to describe the application context: gwt-template-app-
applicationContext.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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/
beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config/>
<bean id="myBizBean" class="com.al.templategwtapp.biz.MyBizClass" /
>
</beans>
Arnaud.
On Feb 13, 3:11 pm, Arthur Kalmenson <[email protected]> wrote:
> That book gives some good information on how to integrateSpringwith
> GWT. Unfortunately, it's become rather dated and focuses on building
> Web sites with GWT aspects rather then building Web applications.SpringMVC
> can still be used with GWT to make the server side for your
> GWT-RPC interfaces.
>
> --
> Arthur Kalmenson
>
> On Thu, Feb 12, 2009 at 2:48 PM, Jorge Guerrero Damian
>
> <[email protected]> wrote:
> > I have some of experience working withSpringMVC and Velocity in the view.
> > WithSpringMVC you can send to the view POJOs, and from the client I
> > receive the data with GET/POST.
>
> > you can take a look to this linkhttp://noon.gilead.free.fr/gilead/
> > maybe can be usefull.
>
> > I'm starting to read a book when integrate GWT with hibernate,springmvc
> > andspringsecurity, and more
> >http://code.google.com/p/tocollege-net/,
> > take a look, can be interesting for you
>
> > 2009/2/12 Christoph <[email protected]>
>
> >> Thanks Jorge, for you info.
>
> >> After a bit more research, I posted a similar question on theSpring
> >> forum, with a bit more detail:
> >>http://forum.springsource.org/showthread.php?t=67423
>
> >> It a first glance, it appears that Springs MVC is tailored to
> >> traditional form based HTTP GET/POST type web clients. Our domain
> >> model is done with POJOs that we transmit back and forth between
> >> client/server using GWT's Java serialization abilities. On the client
> >> side we have a decent separation between model and view. From what I
> >> can tell, since our application sends parts of the model to the
> >> client, I'm not sure that some of the traditional web MVC stuff is
> >> useful for us, since our app is more of rich-client/server RPC. GWT
> >> changes the architecture, for the better, away from the traditional
> >> model only on the server approach.
>
> >> The IoC, DAO, and ORM stuff looks really useful.
>
> >> On Feb 12, 9:52 am, Jorge Guerrero Damian <[email protected]>
> >> wrote:
> >> > I'm starting to learn gwt, but I know something aboutspring.
> >> > -Springis powerfull with security issues (I recomend that)
> >> > - TheSpringMVC module is usefull to have a clean separation of the
> >> > code.
> >> > -Springhave a great integration with hibernate, in topics like
> >> > sessions,
> >> > transactions, and others.
>
> >> > I don't have experience with the integration of the 3, but I starting to
> >> > learn about that.
>
> >> > 2009/2/11 Christoph <[email protected]>
>
> >> > > We have a Tomcat-based GWT application that we are looking to scale.
> >> > > Our persistence up until this point has been all via XML. We are have
> >> > > chosen to integrate with Hibernate and see a lot of talk about the
> >> > >SpringFramework. So my questions to the GWT community are this:
>
> >> > > What benefit doesSpringgive us over integrating Hibernate without
> >> > >Spring?
>
> >> > > If it makes sense to integrate withSpring, what features ofSpring
> >> > > should we use?
>
> >> > > Thanks,
> >> > > Christoph
>
> >> > --
> >> > Jorge Guerrero Damián
> >> > Ingeniero Civil en Informática
> >> > Egresado de Magister en Ciencias de la Ingeniería Informática
> >> > U.T.F.S.M.
>
> > --
> > Jorge Guerrero Damián
> > Ingeniero Civil en Informática
> > Egresado de Magister en Ciencias de la Ingeniería Informática
> > U.T.F.S.M.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---