springmvc controller异步请求

栏目: java

在大并发的时候有时候为了减少阻塞提高程序的性能,我们通常使用异步来处理,springmv也提供了这样的机制
用代码说话
<!--转码 -->
  <filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <async-supported>true</async-supported>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value><!-- 强制进行转码 -->
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!--springServlet -->
  <servlet>
    <servlet-name>springDispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
  </servlet>
  <servlet-mapping>
    <servlet-name>springDispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

              

/**
 * 销毁分组接口
 */
@RequestMapping("/destroy_group")
@ResponseBody
public Callable<com.fsmeeting.fsp.sp.model.DestroyGroupRsp> destroyGroup(
        @RequestBody com.fsmeeting.fsp.sp.model.DestroyGroupReq destroyGroupReq) {
    return new Callable<DestroyGroupRsp>() {
        @Override
        public DestroyGroupRsp call() throws Exception {
            logger.info("============destroy_group 接口 接收的信息:" + destroyGroupReq.toString());
            com.fsmeeting.fsp.sp.model.DestroyGroupRsp destroyGroupRsp
                    = new com.fsmeeting.fsp.sp.model.DestroyGroupRsp();
            destroyGroupRsp.setErrorCode(1);
            destroyGroupRsp.setRequestType(destroyGroupReq.getRequestType());
            destroyGroupRsp.setSequence(destroyGroupReq.getSequence());
            DestroyGroup.Builder builder = DestroyGroup.newBuilder();
            String appId = null;
            try {
                appId = iceProxy.getAppIdByAppToken(destroyGroupReq.getAppToken());
            } catch (Exception ex) {
                throw new IceProxyException("iceProxy exception");
            }

            builder.setAppId(appId);
            builder.setGroupId(destroyGroupReq.getGroupID());
            Object listenResult = listenData(gcGroupTopicName, builder.build(),
                    com.fsmeeting.fsp.proto.gc.ProtoDictionary.Enum2DestroyGroup_VALUE);
            if (null != listenResult) {
                destroyGroupRsp.setErrorCode(0);
            } else {
                throw new NoDataException("no data found");
            }
            logger.info("============destroy_group 接口 返回的信息:" + destroyGroupRsp.toString());
            return destroyGroupRsp;
        }
    };
}

         





曾梦想仗剑走天涯 看一看世界的繁华 年少的心总有些轻狂 如今你四海为家 曾让你心疼的姑娘 如今已悄然无踪影 爱情总让你渴望又感到烦恼 曾让你遍体鳞伤 Dilililidilililidenda Dilililidilililidada Dilililidilililidada 走在勇往直前的路上 Dilililidilililidenda Dilililidilililidada Dilililidilililidada 有难过也有精彩 每一次难过的时候 就独自看一看大海 总想起身边走在路上的朋友 有多少正在疗伤 Dilililidilililidenda Dilililidilililidada Dilililidilililidada 不知多少孤独的夜晚 Dilililidilililidenda Dilililidilililidada Dilililidilililidada 从昨夜酒醉醒来 每一次难过的时候 就独自看一看大海 总想起身边走在路上的朋友 有多少正在醒来 让我们干了这杯酒 好男儿胸怀像大海 经历了人生百态世间的冷暖 这笑容温暖纯真 每一次难过的时候 就独自看一看大海 总想起身边走在路上的朋友 有多少正在醒来 让我们干了这杯酒 好男儿胸怀像大海 经历了人生百态世间的冷暖 这笑容温暖纯真

关键字

最近访客