ActionHandler服务器处理程序作用域



我们公司最近改用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的,但其思想可能仍然适用。我不得不说,虽然这样做之后,我从来没有使用过它,发现我的应用程序的单例作用域是好的。

相关内容

最新更新