gpt4 book ai didi

java - Guice注入(inject)和RequestFactory : Extending ServiceLayerDecorator

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:12 25 4
gpt4 key购买 nike

我搜索了一种将 Guice 依赖注入(inject)与 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()(在 ServiceLayerDecorator 中)有什么用?在这个地方使用 getTop() 是否正确/安全?

抱歉想的太复杂了!很简单:

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

最佳答案

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

ServiceLayer 使用责任链模式:如果你的装饰器没有什么具体要做的,它应该委托(delegate)给链中的下一个装饰器(由 getNext 返回)相同的论点。如果你的装饰器改变了参数,或者需要调用另一个方法,它应该在 getTop 上调用它,这样调用就会通过所有装饰器,而不仅仅是链中它之后的装饰器。

因此,您对 getTop 的使用是正确且安全的(看看 GWT 的 LocatorServiceLayer,这正是它的作用)。

但是您的代码(以及 Etienne 的代码!)实际上可以变得更简单和更好:只需覆盖 createServiceLocator 即可从您的注入(inject)器获取实例(与 createLocator 相同)。

关于java - Guice注入(inject)和RequestFactory : Extending ServiceLayerDecorator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com