Daizc
count.articles46
count.tags23
count.categories3
定制Jackson注解实现字段脱敏

定制Jackson注解实现字段脱敏

功能

在保证jackson原注解不失效的前提下,通过自定义注解对POJO中部分指定的字段进行自定义处理

完成样式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Test {

public static void main(String[] args) throws JsonProcessingException {

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setAnnotationIntrospector(new EnhanceJacksonAnnotationIntrospector());
A a = new A();
a.setAge(10);
a.setName("ASDASDASD");
a.setRemark("REMARK!");
a.setMobile("17600000000");
System.out.println(objectMapper.writeValueAsString(a));
}


@Data
static class A {

private String name;

private Integer age;

private String remark;

@JsonMask(a = "",b = "",c = "")
private String mobile;
}
}

运行结果

1
{"name":"ASDASDASD","age":10,"remark":"REMARK!","mobile":"1760****000"}
[ESP8266]02_Lua基础

[ESP8266]02_Lua基础

[ESP8266]01_刷写测试AT固件

[ESP8266]01_刷写测试AT固件

改造Spring-data-redis 优雅设置过期时间

改造Spring-data-redis 优雅设置过期时间

Spring-data-redis是一个比较优雅的缓存解决方案,只需要在对应的方法上打上注解就可以便捷的将数据放入redis。

但Spring-data-redis中配置TTL只能按照cacheName的维度进行配置,并不能精确到具体的接口上。

比如以下需求就不能优雅的实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public interface CacheDemo{

// 这个接口只缓存30min
@Cacheable(value = "user", keyGenerator = "xxxx")
List<User> listByQuery(UserQuery query);

// 这个接口只缓存1min
@Cacheable(value = "user", keyGenerator = "xxxx")
List<User> takeUserFromObj(Object obj);

// 这个接口缓存180min
@Cacheable(value = "user", keyGenerator = "xxxx")
List<User> getByUserId(String userId);
}

这篇文章就将以定制Cache具体实现类的方式优雅的实现这个功能.

java8函数设计[1]-在filter中根据Key去重的函数

java8函数设计[1]-在filter中根据Key去重的函数

函数接口是如何写出来的?

[Zookeeper学习-第一章]zk环境搭建[单机+控制台]

[Zookeeper学习-第一章]zk环境搭建[单机+控制台]

系统环境为 Centos ,由于项目需要,准备搭建 zookeeper-3.5.5 + 用于方便展示节点的zookeeperAdmin用作公司开发之用

[Zookeeper学习-第二章]用作SpringCloud的注册中心

[Zookeeper学习-第二章]用作SpringCloud的注册中心

太长懒得写了 用作注册中心->手动维护节点->节点树操作 最后配合feign完成服务动态调用

计划任务的Spring实现与手动实现

计划任务的Spring实现与手动实现

手写计划任务当然比不过简单又好用的SpringScheduled

[MXCHIP-2]真机调试

[MXCHIP-2]真机调试

离上一篇文章发布已经时隔很久了,整理了一下最近学习的操作做个记录免得忘掉了。

SpringBoot中的redis密码问题

SpringBoot中的redis密码问题

由于站点迁移导致的数据丢失,该文章已做归档处理

直接说结论: 使用 spring.redis.url 时,需要把密码拼在url上,下方的password此时不起作用

============ 原正文 ==============

很简单的一个问题,花了大力气去解决。重要的是解决问题的方式和思路。

×