Je dois utiliser GWT avec une couche de domaine basée sur les services - pas avec des DAO. L'architecture GWT 2.1 avec MVP et RequestFactory est-elle adaptée à cela? Ou devrais-je rester avec RPC?RequestFactory avec la couche de service
Merci
Je dois utiliser GWT avec une couche de domaine basée sur les services - pas avec des DAO. L'architecture GWT 2.1 avec MVP et RequestFactory est-elle adaptée à cela? Ou devrais-je rester avec RPC?RequestFactory avec la couche de service
Merci
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.
Existe-t-il un exemple ou une application d'échafaudage qui illustre ces fonctionnalités? Merci –
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
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. –