zoukankan      html  css  js  c++  java
  • 2018-6-1-采坑日记

    SpringMVC:

    1、查看方法的入参、出参说明,可以借助Swagger UI。

      --->尤其是查看请求入参中是否需要token。

    2、查找Controller中方法,使用接口URL搜索更加高效。

    3、常见服务响应类型

    public ServiceResponse<Map<String,String>> register(CustomerInfoBo customerInfo){
        try{
            if(customerInfo == null){
                return ServiceResponse.error("The register is error.");
            }else{
                Map<String,String> map =  registerService.register(customerInfo);
                return ServiceResponse.success(map);
                }    
            }catch(BusinessServiceException e){
                logger.error("The register is error.", e);
                return ServiceResponse.error(e.getMessage());
            }
        }

    ---> sccess与error方法入参类型可以定义不同,但是保证方法返回类型相同。

     4、console中异常信息是以堆栈形式提示。相互依赖的错误也是依赖提示。

    --->上面(前面)是上层应用的错误,下面(后面)是底层方法实现的错误,因此通过定位后面的错误,分析解决问题。

    eg:

    Error creating bean with name 'CustomerController': Unsatisfied dependency expressed through field 'registerCustomerService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'fRegisterCustomerServiceImpl': Unsatisfied dependency expressed through field 'tpsServiceClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.ton.remote.client.TpsServiceClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0

    5、Controller方法入参注解细节:

    @RequestParam()最好为参数命名,避免不必要的错误,且一个方法可以有多个RequestParm参数注解。

     eg:(@RequestParam(name="lid",defaultValue="ste") String id)

       ( @RequestParam("name") String name, @RequestParam("idType") String idType)

    未命名报错:java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0

    @RequestBody:针对对象参数,且一个方法只能有一个RequestBody参数。

    eg:正确:(@RequestBody String name)

      错误:(@RequestBody String name, @RequestBody String idType)

    多个RequestBody参数报错: nested exception is java.lang.IllegalStateException: Method has too many Body parameters: 

    6、常见接口问题:后台接口逻辑正常,功能无效。

      --->可能由于前端请求参数错误

        eg:前端没有传递筛选条件,导致查询接口返回未经删选的数据。

    7、kafka:(消息中间件)  

      --->一方:广播主题,可能多个;另一方:监听约定好的主题,根据主题确定传送数据存在哪里(eg:存在redis里)

     8、常见"JSON对象"类型数据,获取某字段数值。

        public <V> V getData(Class<V> clazz) {
            Object v = null;
            if (this.data != null) {
                if (this.data instanceof JSONObject) {
                    v = ((JSONObject) this.data).toJavaObject(clazz);
                } else {
                    v = JsonUtils.toObject(JsonUtils.toJsonString(this.data), clazz);
                }
            }
            return v;
        }
    方法调用: registerInfo.getData(JSONObject.
    class).get("msspId");

    备注:(Class<V> clazz),表明方法入参为传入类型的Class对象

    SVN:

    1、常见SVN提交代码流程:

    • 远端提供授权
    • 本地只查看有修改的文件(文件有黑星标记)--->team/更新-拉取最新代码解决冲突--->team/提交(添加授权标识号)

     备注:Git/Subversion一般都是在管理修改的代码,因此通常我们只需要针对有修改文件进行Git/Subversion操作。

  • 相关阅读:
    python拆包与装包-*args,**kwargs
    mybatis学习4-CRUD操作
    mybatis学习3-入门案例,注解方式
    mybatis学习1-前置,复习Jdbc
    spring框架学习-aop
    spring学习1-第一个spring项目
    spring概述
    idea的一些个人设置
    maven的一些个人设置
    VBA文件对话框的应用(VBA打开文件、VBA选择文件、VBA选择文件夹,VBA遍历文件夹)
  • 原文地址:https://www.cnblogs.com/gavincoder/p/9130218.html
Copyright © 2011-2022 走看看