我们公司最近改用GWT,我有一个问题。如何配置ActionHandler服务器处理程序范围?
在我们当前的设计中,我们使用configureHandlers
方法,它创建了单例处理程序。我们认为这是一个糟糕的设计,应该使用每个请求处理程序。这可能吗?
这里是创建处理程序的ServerModule
:
@Configuration
@Import(DefaultModule.class)
public class ServerModule extends HandlerModule
{
private Map<Class, Object> _handlersMap;
@Resource(name = "handlersConfigurationMap")
// Working around a Spring bug https://jira.springsource.org/browse/SPR-7916
public void setHandlersMap(final Map<Class, Object> handlersMap)
{
_handlersMap = handlersMap;
}
@Override
protected void configureHandlers()
{
for (Class handlerClassName : _handlersMap.keySet())
{
//noinspection RedundantCast,unchecked
bindHandler((Class<? extends Action>)handlerClassName, (Class)_handlersMap.get(handlerClassName).getClass());
}
}
}
不清楚您是否在使用gwt-dispatch库。假设你是那么相当长的一段时间之前,我有类似的想法,并创建了一个补丁,可以在这里找到。不幸的是,它是基于Guice而不是Spring的,但其思想可能仍然适用。我不得不说,虽然这样做之后,我从来没有使用过它,发现我的应用程序的单例作用域是好的。