• 一些小坑


    一、使用jackson反序列化时存在多余字段

    Unrecognized field "xxx" (……), not marked as ignorable (5 known properties: "xxxxxxxxx",

    反序列化字段未匹配上,忽略掉这些字段:

    
    
    public class JsonUtil {

    public static final ObjectMapper objectMapper;

    static {
    objectMapper = new ObjectMapper();
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    }

    }

    二、swagger配置开发环境

    @Profile("dev")  //指定只可以在dev环境看到接口doc
    @Configuration
    @EnableSwagger2
    @Profile("dev")
    @ComponentScan("com.xxx.xxx.controller")
    public class SwaggerConfig {
    
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.xxx.controller"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            ApiInfo apiInfo = new ApiInfoBuilder().title("Service APIs")
                    .description("Service APIs")
                    .license("xxx")
                    .licenseUrl("http://www.xxx.com")
                    .version("1.0")
                    .build();
    
            return apiInfo;
        }
    }

    三、modelmapper的严格匹配

        private ModelMapper mapper;
    
        /**
         * init mapper
         */
        public DemoController() {
            this.mapper = new ModelMapper();
            this.mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
        }

    四、编译错误

    Error:java: Compilation failed: internal java compiler error

    五、git仓库迁移

    git仓库迁移,需要重新映射项目地址,不删本地库,修改config即可:

    把如下2个文件中的git仓库IP改成新IP地址就行,不必重新拉:

    • C:Users你的用户名.sshconfig
    • 项目目录.gitconfig

    如果有多个项目目录,就在每个项目目录里改。
    注意改config时使用vi或vim来修改(windows下不能用notepad来修改)

    改完了 git pull 或 git push 即可,如果失败,需要执行下命令:(本地分支 local_branch_name 和 远程分支 remote_branch_name 建立联系)

    git branch --set-upstream <local_branch_name> origin/<remote_branch_name>

    六、notepad编辑问题

    用windows系统自带的notepad.exe编辑csv文件,另存为UTF-8格式后,CSVReader读取的第一行列名左上角带符号

    解决办法参考:pandas读取txt文件第一行列名困扰我许久的'点'

    七、HttpServletRequest序列化报错

            HttpServletRequest request = new Request();
            JSON.toJSONString(request);

    序列化报错:

    Caused by: java.lang.IllegalStateException: It is illegal to call this method if the current request is not in asynchronous mode (i.e. isAsyncStarted() returns false)
        at org.apache.catalina.connector.Request.getAsyncContext(Request.java:1742)

    八、Object 和 Map序列化

    九、泛型多个约束

    java继承中,可以拥有多个接口超类型,但限定中至多有一个类,且必须是限定列表的第一个,一个类型变量或通配符可以有多个限定,例如:<T extends Comparable & Serialization>其中限定类型用‘&’进行分割。

    十、金额格式化

    NumberFormat AMOUNT_FORMAT = new DecimalFormat(",##0.00"); 
    AMOUNT_FORMAT.format(BigDecimal.valueOf(1232322.23));

    格式化输出:1,232,322.23

  • 相关阅读:
    HBase 文件读写过程描述
    Kafka 部署指南-好久没有更新博客了
    《Python高性能编程》——列表、元组、集合、字典特性及创建过程
    Ansible常用功能
    vim内替换文件内容
    线程队列-queue
    Python多进程
    python多线程知识-实用实例
    夜间模式的实现
    本地通知的实现
  • 原文地址:https://www.cnblogs.com/mr-yang-localhost/p/7709759.html
Copyright © 2020-2023  润新知