定制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"}
|
改造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{
@Cacheable(value = "user", keyGenerator = "xxxx") List<User> listByQuery(UserQuery query); @Cacheable(value = "user", keyGenerator = "xxxx") List<User> takeUserFromObj(Object obj); @Cacheable(value = "user", keyGenerator = "xxxx") List<User> getByUserId(String userId); }
|
这篇文章就将以定制Cache具体实现类的方式优雅的实现这个功能.
[Zookeeper学习-第一章]zk环境搭建[单机+控制台]
系统环境为 Centos ,由于项目需要,准备搭建 zookeeper-3.5.5 + 用于方便展示节点的zookeeperAdmin用作公司开发之用
[Zookeeper学习-第二章]用作SpringCloud的注册中心
太长懒得写了 用作注册中心->手动维护节点->节点树操作 最后配合feign完成服务动态调用
计划任务的Spring实现与手动实现
手写计划任务当然比不过简单又好用的SpringScheduled
[MXCHIP-2]真机调试
离上一篇文章发布已经时隔很久了,整理了一下最近学习的操作做个记录免得忘掉了。
SpringBoot中的redis密码问题
由于站点迁移导致的数据丢失,该文章已做归档处理
直接说结论: 使用 spring.redis.url 时,需要把密码拼在url上,下方的password此时不起作用
============ 原正文 ==============
很简单的一个问题,花了大力气去解决。重要的是解决问题的方式和思路。