当前位置: 首页 > news >正文

vi设计 站酷/西安网站搭建

vi设计 站酷,西安网站搭建,乐清seo公司,古城网站建设1.声明 当前的内容用于本人学习和复习使用 原因: 1.由于本人最近想要统一返回响应json数据,但是如果随便乱写就会导致数据的不确定性(必须要有良好的组织) 2.各种返回类型,以及数据的返回形式不同,可能导致调用一个接口产生不…

1.声明

当前的内容用于本人学习和复习使用

原因:

1.由于本人最近想要统一返回响应json数据,但是如果随便乱写就会导致数据的不确定性(必须要有良好的组织)

2.各种返回类型,以及数据的返回形式不同,可能导致调用一个接口产生不同的响应(不利于后期维护)

本人按照以下几点来实现后台向前台返回的json格式

==1.json格式中必须带有:响应时间,访问的url,结果类型,响应码,消息(可以是错误信息也可以是成功的消息),数据(查询的时候返回的数据)==

2.统一返回json数据可以使用的方法有:规定所有返回类型为指定类型,后期对返回值的处理,通过切面方式转换为指定类型

2.规范返回的类型

实现方式可以定义一个默认的返回的类DefaultResponseBody

@Data
@NoArgsConstructor
@AllArgsConstructor
public class DefaultResponseBody {private String url;private String resultType;// 默认为成功,successprivate Integer responseStatusCode; // 状态码为200或者其他private Date responseTime;private String message;private Object data;// 存放的数据
}

首先这个方式最简单,但是要求所有人必须统一使用这种风格(如果是团队操作,建议使用该方式)

3.通过切面方式统一处理返回值(不建议)

至于为什么不建议,因为Controller中的方法中的返回值并不确定,但是并不一定是指定的类型,我们对于指定类型需要特定的解析(浪费很多时间),多一个类型就会多一个解析方式

@Configuration
@Aspect
public class PagedAspectConfig {// @Pointcut("execution (* com.hy.commons.systemmodel.controller.*.*(..)) &&@Pointcut("@annotation(" + 需要拦截的注解+ ")")void pagePointCut() {}@AutowiredServletRequest request;@Around("pagePointCut()")Object handlerBeforePaged(ProceedingJoinPoint pointcut) throws Throwable {//1.方法的执行并获得返回值//2.通过执行转换参数并直接通过响应直接返回}

我们需要通过类型判断实现特定的处理

4.通过后续处理(通过实现ResponseBodyAdvice方式处理,不建议)

弊端:返回值为Object,但是一个方法是具有返回类型的,并且,当前如果使用包装的方式包装返回值就会导致(类型转换错误!),对于扩展不利,因为每一个方法中返回类型不一致(可以通过约定指定返回值然后处理,感觉有点复杂)

@ControllerAdvice
public class ControllerResponseBodyAdvice implements ResponseBodyAdvice<Object> {@Overridepublic boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {return true; // 判断该返回类型是否支持解析,这里可以写我们需要的类型}@Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request,ServerHttpResponse response) {// 这里可以包装然后返回,按照指定类型返回,需要类型判断和类型转换return body;}
}

由于不同的类型需要适配到指定的类型,所以必然是复杂的,并且困难!

5.总结

1.通过今天的统一返回值方式发现了许多方法,但是最终最好的就是让所有的人使用统一的返回值例如:DefaultResponseBody类型(或者接口)

2.理解了为什么Spring中的约定优于配置的原理,因为没有一个统一的约定,写起来就很复杂,各种不同的类型导致不同的结果,最终导致系统的复杂性

以上纯属个人见解,如有问题请联系本人!

http://www.jmfq.cn/news/4836403.html

相关文章:

  • 时时彩网站建设/湖南优化推广
  • 网站 免费空间/免费推广网站2023
  • 重庆网站优化建设/seo推广优化平台
  • 微信商城网站怎么做的/seo咨询茂名
  • 博客自定义网站/百度快速查询
  • 网站后台不显示/谷歌搜索优化seo
  • 网站公安备案号是否反映备案时间/外贸推广是做什么的
  • 公众平台如何做网站/深圳网络推广最新招聘
  • 素材网站的图可以做海报吗/seo外包公司排名
  • wordpress js css/seo交互论坛
  • 520高清网站三级黄色软件男女做/优化设计六年级下册语文答案
  • wordpress做跟随导航导航/seo关键词分类
  • 网站建设技术方案模板下载/正规代运营公司排名
  • 做网站杭州/蜘蛛seo超级外链工具
  • 传统网站开发/最近营销热点
  • 做门户类网站多少钱/微信朋友圈软文大全
  • 设计网站的收费图是怎么做的/网站收录
  • wordpress阿里云主机/seo课堂
  • 小企业公司网站怎么建/谷歌搜索引擎镜像入口
  • 网站商城/页面优化
  • 手机版官方网站的建设/谷歌官方网站
  • 学生个人简历/慈溪seo排名
  • 网站怎么做友链/怎么写网站
  • wordpress网页排版插件/百度seo排名规则
  • 二手域名做网站不收录/seo免费浏览网站
  • 商务型网站模板/国家免费技能培训平台
  • 游戏网站建设方案百度文库/关键词包括哪些内容
  • 专业的移动网站建设/怎么自己注册网站
  • wordpress无法管理站点/北京百度推广seo
  • 摄影创意网站/seo草根博客