2011-02-08 3 views

Répondre

3

GWT 2.1.1 ajoute un mécanisme Locator et ServiceLocator pour vous permettre de contrôler la façon dont le code du serveur RequestFactory obtient des références à des entités et des instances d'objet de service.

Par exemple, vous pouvez déclarer le code comme

class MyService.class { 
    // Note that this is not a static method 
    public void doSomething() {....}; 
} 

class MyServiceLocator implements ServiceLocator { 
    public Object getInstance(Class<?> clazz) { 
    // Or use Guice, Spring, whatever provides instances of MyService 
    return new MyService(); 
    } 
}  

interface MyRequestFactory extends RequestFactory { 
    @Service(value=MyService.class, locator=MyServiceLocator.class) 
    interface ServiceRequest extends RequestContext { 
    Request<Void> doSomething(); 
    } 
    ServiceRequest myService(); 
} 

Si vous avez besoin encore plus de contrôle sur la façon dont RequestFactory interagit avec vos objets de domaine du serveur ou le code de service, vous pouvez injecter des instances de ServiceLayerDecorator dans la couche de service.

+0

Existe-t-il un exemple ou une application d'échafaudage qui illustre ces fonctionnalités? Merci –

+1

Thomas Broyer a été un utilisateur très actif contribuant aux fonctionnalités et à la documentation de RequestFactory. Il travaille sur une série de blogs sur RF. http://tbroyer.posterous.com/gwt-211-requestfactory-part-ii Il a également posté un peu sur le groupe Google GWT. – BobV

+0

dans quel paquet dois-je écrire la classe MyServiceLocator? en partage ou serveur? J'ai essayé de le faire dans un paquet partagé mais cela donne une erreur: Aucun code source n'est disponible pour le type com.google.gwt.sample.server.TreeService; avez-vous oublié d'hériter d'un module requis? Cela est probablement dû au fait que le package partagé ne doit pas référencer les classes du package du serveur. –

Questions connexes