JSON

请求路由到业务方法设计(2)(2)

字号+ 作者:H5之家 来源:H5之家 2015-11-10 14:41 我要评论( )

接下来就是执行器来执行指定逻辑代码了,因为Map中放的是Method,执行需要进行反射: public class AbstractBaseServiceAdapter {/*** json == OpenRequest* @param json* @param handler* @return*/public final O

接下来就是执行器来执行指定逻辑代码了,因为Map中放的是Method,执行需要进行反射:

public class AbstractBaseServiceAdapter { /** * json ==> OpenRequest * @param json * @param handler * @return */ public final OpenRequest decode(JSON json, ServiceMethodHandler handler){ Class<? extends OpenRequest> requestClass = handler.getRequestType(); ObjectMapper mapper = new ObjectMapper(); OpenRequest request = null; try { request = mapper.readValue(json.toJSONString(), requestClass); } catch (Exception e) { throw new OpenServiceException( "open decode had a exp json==>"+json , e); } return request; } /** * OpenResponse ==> json * @param response * @return */ public final JSON encode(OpenResponse response){ ObjectMapper mapper = new ObjectMapper(); // Convert object to JSON string JSON json = null; try { String j = mapper.writeValueAsString(response); json = JSON. parseObject(j); } catch (Exception e) { throw new OpenServiceException( "open encode had a exp response==>"+response.getClass() , e); } return json; } public final JSON execute(JSON json, ServiceMethodHandler handler) { OpenRequest request = this.decode(json, handler); handler.getHandler(); handler.getHandlerMethod(); OpenResponse response = null; try { // 执行器执行对应方法 response = (OpenResponse) handler.getHandlerMethod().invoke( handler.getHandler(), request); } catch (Exception e) { throw new OpenServiceException( "open invoke had a exp json"+json , e); } JSON retrunJson = this.encode(response); return retrunJson; } }

至此结构代码已经理清,具体还有method的输入输出,需要统一接口实现,以保证执行器代码的统一。

总结

1,这个方案的核心就是利用注解来组装好这个路由Map,以及用反射的方式执行对应的方法。

2,另外Spring的确十分强大,很多封装代码可以被使用。学习java的应该深入进去挖宝。

让我们继续前行

———————————————————————-

努力不一定成功,但不努力肯定不会成功。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Windows 10开发基础

    Windows 10开发基础

    2015-11-24 18:58

  • 创建 REST API 的最佳入门教程

    创建 REST API 的最佳入门教程

    2015-11-23 17:25

  • 【Git 项目推荐】目前为止性能最强的 JSON 框架

    【Git 项目推荐】目前为止性能最强的 JSON 框架

    2015-11-21 13:18

  • Shunter - a Node.js application built to read JSON and trans

    Shunter - a Node.js application built to read JSON and trans

    2015-11-17 11:39

网友点评
1