jackson转范型
发表于|更新于
|浏览量:
不下决心培养思考习惯的人,便失去了生活中的最大乐趣。——爱迪生
代码很简单
1 | mapper.readValue(json, mapper.constructType(type)) |
这里主要是来源com.alibaba.nacos.common.utils.JacksonUtils#toObj(java.lang.String, java.lang.reflect.Type)
主要是这个mapper.constructType(type)
还可以
1 | TypeFactory typeFactory = mapper.getTypeFactory(); |
相关推荐
2023-12-24
spring-state-machine持久化restore踩坑
没有人事先了解自己到底有多大的力量,直到他试过以后才知道。——歌德 今天遇到的问题是在响应式编程中发生禁止block异常: 1org.springframework.statemachine.persist.AbstractStateMachinePersister#restore 源码如下: 12345678@Overridepublic final StateMachine<S, E> restore(StateMachine<S, E> stateMachine, T contextObj) throws Exception { final StateMachineContext<S, E> context = stateMachinePersist.read(contextObj); stateMachine.stopReactively().block(); stateMachine.getStateMachineAccessor().doWithAllRegions(function -> function.r...
2023-04-08
mvc及jackson配置到配置文件中
太多的闲暇犹如死水,终必使人腐绣昏睡。——佚名 见:https://github.com/apache/incubator-streampark/pull/2583 该pr把jackson配置从代码更换到配置文件中,让使用的用户更改time-zone时区、date-format等变得更方便,因为很多海外用户,并不是使用咱们一个时区 将原来: 123456789101112131415@Bean public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, fals...
2021-08-23
mybatis-plus的select函数
学问是异常珍贵的东西,从任何源泉吸收都不可耻。——阿卜·日·法拉兹 在mybatis-plus的条件构造器中如果我们想要过滤字段,则可以使用select函数 官方文档介绍如下: 这里分为两类,其中第一个例子:select("id", "name", "age")可以用于一般Wrapper 如果是lambdaQueryWrapper,则需要使用lambda,例如 1Wrappers.lambdaQuery(UserDetail.builder().build()).select(UserDetail::getUsername,UserDetail::getAvatar) 第二类,我们可以按照某种规则去匹配 例如这里我只要password以外的字段 写法如下: 1Wrappers.lambdaQuery(UserDetail.builder().build()).select(tableFieldInfo -> !tableFieldInfo.getProperty().equals(PropertyNamer...
2023-11-09
spring-state-machine守卫踩坑
真正的艺术家绝不顾虑作品的前途。——罗曼·罗兰 今天发现一个问题,如果我们是动态构建状态机,在传入指定守卫为null时,代码不会报错,且事件不会过渡到下一个状态 解决方式: 1234567builder.configureTransitions().withExternal() .name(transition.getName()) .source(transition.getSourceState()) .event(transition.getEvent()) .target(transition.getTargetState()) .action(Opp.of(transition.getAction()).orElse(SerCons.nothing()::accept)) .guard(Opp.of(transition.getGuard()).orElseGet(() -> c -> true)) 提供默认值 引入的是import org.dromara.streamquery....
2024-09-30
bean-searcher自动接收请求参数、多租户隔离、逻辑删除
今天尽你最大的努力去做好,明天你也许就能做得更好。——牛顿 文档地址如下: 其它玩法 | Bean Searcher Bean Searcher 的参数过滤器 ParamFilter,非常易于自定义,可以让我们用简单几行代码,就玩出其它 ORM 难以实现的花样。 自动接收请求参数1234567891011121314151617181920212223@Componentpublic class MyParamFilter implements ParamFilter { // 定义一个常量,作为一个开关,当启用时,则取消自动加载功能 public static final String IGNORE_REQUEST_PARAMS = "IGNORE_REQUEST_PARAMS"; @Override public <T> Map<String, Object> doFilter(BeanMeta<T> beanMeta, Map<String, Object> para...
2022-03-08
注解支持@Alias同步值
你最可爱,我说时来不及思索。但思索之后,还是这样说。——普希金《你多么可爱》 首先是这个issue:希望AnnotationUtil增加对@AliasFor的支持 然后我就提交了这个PR:提供AnnotationUtil#getAnnotationAlias,为@Alias注解做别名支持的适配 代码如下(找不到方法可以去看hutool源码): 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import cn.hutool.core.exceptions.UtilException;import cn.hutool.core.util.ArrayUtil;import cn.hutool.core.util.ObjectUtil;import cn.hutool.core.util.ReflectUtil;import cn.hutool.core.util.StrUtil;import java.lang.annotation.Ann...
