一些小坑

一、使用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\你的用户名\.ssh\config
  • 项目目录\.git\config

如果有多个项目目录,就在每个项目目录里改。
注意改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

posted @ 2017-10-22 16:30  Mr.yang.localhost  阅读(910)  评论(0编辑  收藏  举报