使用一个参数来表示多选信息

在开发中我们总是能遇到多选的情形,尤其是在配置中。 一般情况下我们可以使用一对多的存储关系或是append字符串的方式将所有选择项记录下来。但是一对多的存储关系占用资源多,append字符串的解析成本高,有没有更优的方式呢?答案肯定是有的,就是用位运...

技术

Java中接口的优势

接口是一个抽象概念的实例化,它表示了一个类所能实现的方法与属性值。但在Java中,interface作为一个类型,就额外拥有了一些特点。 以下内容基于Java8书写 定义一个接口接口被interface关键字定义且无法被final所描述,自带有abs...

技术

Swagger2不支持泛型复杂嵌套处理

在swagger2中,默认情况下并不会支持泛型复杂嵌套,就像是Map<String, List<Person>>或是List<Map<String, Object>>,如果有这样的返回值的话,访问swa...

技术

利用反射获取泛型的真实类型

众所周知,泛型的本质是强制类型转换,也就是说在编译后,所有的泛型都会变成是Object,并由编译器自动追加类型转换方法。这里就不过多介绍泛型,以下内容默认读者对泛型和反射有一定的了解。 因为泛型的擦除机制,导致在编译后我们无法从一个带泛型的类上直接获...

技术

Java的CAS简述

以下内容基于Java1.8编写 首先需要明白一点,CAS的全称是 __compare and switch__,也就是比较与交换,目的在于对 set 做非阻塞原子操作,常用于多线程环境。 atomic包下的CASatomic包下的类主要是为了对单一数...

技术

SpringCloud学习记录

最近一直在学SpringCloud,还挺好玩的,这里记录一下遇到的一些问题。 No instances available 错误首先,这个错误的本质是未找到对应的服务,比较明显的错误就是调用的服务名在注册中心中未能找到。但是经过我的检测,在注册中心的...

技术

Spring Boot中的EnableCaching简述

spring boot中自带有数据缓存机制,主要通过其org.springframework.cache包下的各种类来实现。 EnableCaching@EnableCaching是启用缓存的注解,标注在任何一个可自动注入的类上即可开启。 Cache...

技术

Spring Boot的Scheduled

Spring Boot的Scheduled用于做计划任务,例如周期任务、定时任务、延迟任务等。\n\n一般情况下,我们可以通过@Scheduled注解中的cron、fixedDealy、fixedRate、initialDelay这些属性来控制方法的...

技术

SpringBoot的Validation校验

在使用SpringBoot进行web开发时,经常性地需要进行参数值校验,比如某某字段不能为空,某某数字不能小于多少。一般情况下,我们都会使用Validation来进行自动校验。这里就说一些Validation相关的东西。 依赖在SpringBoot中...

技术

Java的参数传递

众所周知,Java的参数采用的是 引用传递 的方式。我以前总是会误以为方法参数采用的是 值传递,导致我错误判断的原因如下: 123public void change(Person person) { person.setName(&...

技术
12

本站总访问量