美文网首页
封装restful

封装restful

作者: vivi_wong | 来源:发表于2017-03-04 00:02 被阅读0次

    在restful这一层 要封装的东西比较多

    1.request

    首先封装一个requestContext的bean,@Param @Params @FormFile @FormFiles

    这些注解可以打在controlller的方法上面,@Param定义传进来的参数,@FormFile 定义传进来的file

    写一个类实现HandlerMethodArgumentResolver,复写supportsParameter,resolveArgument,

    resolveArgument 返回requestContext,在contrller的方法参数就可以写这个参数,获取封装后的request的参数。

    附件也可以获取。

    2 converter

    接口Converter, ConversionService

    写一个实现类实现converter 注入到上面写的实现类,获取值的是就可以转换

    3.exceptionhandler

    实现HandlerExceptionResolver

    复写 resolveException

    预先定义好 一些entry   message,code

    最后统一匹配异常判处json格式的errorcode

    4 RequestMappingHandlerAdapter

    写一个实现RequestMappingHandlerAdapter接口

    复写afterPropertiesSe

    覆盖Spring MVC类,用于转JSON.

    5 HandlerMethodReturnValueHandler

    写一个jsonreturnvaluehandler

    利用  jsonserializer 去把返回值都转为json

    JsonSerializerFactory 就是把@json定义好的字段 和  序列化解析器整合然后生成对应的json数据

    这里说一下 flexjson.JSONSerializer

    .exclude()

    .include()

    分别扩展了

    flexjson.JSONContext flexjson.PathExpression   flexjson.JSONSerializer

    6 HandlerInterceptorAdapter

    写了一个关于记录日志的队列,每当有request请求,就把相关信息封装到一个item,里面去,然后add到队列里面去,这里要提一起,用了3个队列,设置一个flushed,如果是flused,把队列的全部item  使用掉,如果不是,设置了一个定值比如100, 每100个使用,

    再写一个类,定时任务,然后从队列里面获取日志item 存储起来。

    7 AttachmentResolver

    该接口 分别有三个方法

    store, reslove2read remove

    1.本地存储,获取文件流,保存在服务器本地

    2.fastdfs

    org.csource.fastdfs.UploadCallback

    org.csource.fastdfs.StorageClient ,org.csource.fastdfs.TrackerServer

    原理是,通过TrackerServer 找到对应的storeserver,调用callback,把文件流存储到storeserver

    下载也是一样的,通过trackerserver找到storeserver  把文件流获取返回

    SubjectResolver

    实现HandlerMethodArgumentResolver

    返回Subject  通过Subject  获取用户相关信息

    PermissionCheckInterceptor

    实现HandlerInterceptorAdapter

    获取method的@permit注解,定义的URL,判断该用户是否拥有这个权限

    WebSocketDispacherHandler

    实现TextWebSocketHandler接口

    复写handleTextMessage

    接受请求,利用session.send(message)返回信息

    这里的session对应每个客户端与服务器的请求

    相关文章

      网友评论

          本文标题:封装restful

          本文链接:https://www.haomeiwen.com/subject/gxorgttx.html