有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Guice注入和请求工厂:扩展ServiceLayerCorator

我搜索了一个将Guice依赖项注入与RequestFactory结合使用的解决方案。 我偶然发现了这个:https://github.com/etiennep

它对我不起作用,所以我更改了InjectedServiceLayerDecorator。这方面的java实现:

https://github.com/opncow/injected-requestfactory/blob/master/src/main/java/com/trycatchsoft/gwt/requestfactory/InjectedServiceLayerDecorator.java

现在我的问题是:

关于RequestFactory的缓存机制,可以做些更好的事情吗(它还在工作吗?)? getTop()getNext()(在ServiceLayerCorator中)是做什么的? 在这个地方使用getTop()正确/安全吗

对不起,我想得太复杂了! 这很容易:

Class<?> serviceClazz = resolveServiceClass(requestContext);
        return injector.getInstance(serviceClazz);

共 (1) 个答案

  1. # 1 楼答案

    What is getTop() and getNext() (in ServiceLayerDecorator) for?

    ServiceLayer使用责任链模式:如果您的装饰器没有任何特定的事情要做,它应该通过使用相同的参数调用相同的方法来委托给链中的下一个装饰器(由getNext返回)。如果您的decorator更改了参数,或者需要调用另一个方法,那么它应该在getTop上调用它,这样调用将通过所有decorator进行路由,而不仅仅是在链中位于其后面的decorator

    因此,您对getTop的使用是正确和安全的(请查看GWT中的LocatorServiceLayer,这正是它所做的)

    但是你的代码(还有Etienne的代码!)实际上可以变得更简单更好:只需重写createServiceLocator即可从注入器获取实例(与createLocator相同)