ObjectMapper

Spring Boot 结合 Redis 序列化配置的一些问题

落花浮王杯 提交于 2020-08-05 23:26:09
前言 最近在学习Spring Boot结合Redis时看了一些网上的教程,发现这些教程要么比较老,要么不知道从哪抄得,运行起来有问题。这里分享一下我最新学到的写法 默认情况下,Spring 为我们提供了一个 RedisTemplate 来进行对 Redis 的操作,但是 RedisTemplate 默认配置的是使用Java本机序列化。 这种序列化方式,对于操作字符串或数字来说,用起来还行,但是如果要对对象操作,就不是那么的方便了。 所以我们需要配置合适的序列化方式。在 Spring 官方的文档中,官方也建议了我们使用其他的方式来进行序列化。比如JSON https://docs.spring.io/spring-data/redis/docs/2.2.5.RELEASE/reference/html/#redis:serializer 配置类 配置 Jackson2JsonRedisSerializer 序列化策略 下面就开始自动配置类的书写 我使用的是 Jackson2JsonRedisSerializer 来对对象进行序列化,所以首先需要一个方法,来配置 Jackson2JsonRedisSerializer 序列化策略 private Jackson2JsonRedisSerializer<Object> serializer() { //

如何基于jackson动态序列化指定字段

僤鯓⒐⒋嵵緔 提交于 2020-08-04 14:18:09
一、前言 把对象序列化为json字符串输出的库很多,本文我们来看如何基于jackson动态控制哪些属性需要进行序列化。 二、序列化输出方式 对应使用Jackson,需要我们在pom文件中引入下面依赖: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.11.1</version> </dependency> 首先简单看下如何使用: @Data static class Car { private String brand; private long price; private int load; private long id; } @Data static class House { private String title; private long price; private long id; } @Data static class Person { private Car car; private House house; private long weight; private long id; private String name; } public static Person

Spring-Redis缓存业务优化(通配符删除、两种自定义缓存时长)

孤者浪人 提交于 2020-08-04 12:25:58
application.yml配置 spring: cache: type: REDIS redis: time-to-live : PT300S # 默认缓存秒数 cache-null-values: false # 是否缓存空值 支持指定cacheNames设置缓存时长 /** * Redis配置类 * * @author ZJJ */ @Configuration @EnableConfigurationProperties(CacheProperties.class) public class RedisCacheConfig extends CachingConfigurerSupport { @Autowired private CacheProperties cacheProperties; @Autowired private RedisConnectionFactory redisConnectionFactory; @Bean @Primary public RedisTemplate<Serializable, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<Serializable, Object> redisTemplate = new

abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十二(四十八)

眉间皱痕 提交于 2020-07-29 09:12:24
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四) abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九) abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十一) abp(net core)+easyui+efcore实现仓储管理系统—

Springboot+Redis综合运用/缓存使用

你说的曾经没有我的故事 提交于 2020-07-28 10:45:49
项目引入依赖(安装redis自行百度) <!-- spring-boot redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- lettuce pool 缓存连接池--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> yml配置 spring: redis: # Redis数据库索引(默认为0) database: 0 # Redis服务器地址 host: localhost # Redis服务器连接端口 port: 6379 pool: # 连接池最大连接数(使用负值表示没有限制) max-active: 8 # 连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1 # 连接池中的最大空闲连接 max-idle: 8 # 连接池中的最小空闲连接 min-idle: 0 # 连接超时时间(毫秒) timeout: 0 redis配置类 @Configuration public

练习redis--保存为hash

谁都会走 提交于 2020-07-28 03:37:55
Person person = new Person(); person.setName( "zhangsan" ); person.setAge( 18 ); ObjectMapper objectMapper = new ObjectMapper(); //实体类转map使用jackson2HashMapper,需要一个ObjectMapper,所以实例化一个 Jackson2HashMapper jackson2HashMapper = new Jackson2HashMapper(objectMapper, false ); //实体类转Map Map<String, Object> map = jackson2HashMapper.toHash(person); // 重写序列化器 stringRedisTemplate .setHashValueSerializer( new Jackson2JsonRedisSerializer<Object>(Object. class )); //缓存数据 stringRedisTemplate .opsForHash().putAll( "zs" ,map); //读取缓存数据 Map zs = stringRedisTemplate .opsForHash().entries( "zs" ); //map转实体 Person

[Abp vNext微服务实践]

。_饼干妹妹 提交于 2020-07-28 03:33:59
前几篇分别介绍了abp vNext微服务框架、开发环境搭建和vue element admin前端框架接入,在vue element admin中实现用户角色管理基本功能后就可以开始进行业务开发了,本篇会详细的介绍如何在abp vNext中开发业务接口和前端页面实现。 业务接口开发 业务接口就是针对业务api接口,通过abp vNext微服务中实现并发布业务接口后,前端获取接口并进行界面开发,如此就实现了abp vNext微服务的前后端分离开发。 step1:创建实体(model) abp vNext微服务框架中的业务开发同样采用了经典的ddd架构风格和ef core 的code first模式,所以一切的业务都从领域模型(domain)开始。创建数据字典模型如下: public class DataDictionary : AuditedAggregateRoot<Guid> ,ISoftDelete { [NotNull] public string Name { get ; set ; } public string Code { get ; set ; } [NotNull] public string FullName { get ; set ; } public Guid? CategoryID { get ; set ; } public string Notes {

Spring Security自定义用户认证

独自空忆成欢 提交于 2020-07-25 06:07:14
在 Spring Boot中开启Spring Security 一节中我们简单搭建了个Spring Boot + Spring Security的项目,认证的用户名和密码都是由Spring Security生成。Spring Security支持我们自定义认证的过程,如处理用户信息获取逻辑,使用我们自定义的登录页面替换Spring Security默认的登录页及自定义登录成功或失败后的处理逻辑等。这里将在上一节的源码基础上进行改造。 自定义认证过程 自定义认证的过程需要实现Spring Security提供的 UserDetailService 接口,该接口只有一个抽象方法 loadUserByUsername ,源码如下: 1 2 3 public interface UserDetailsService { UserDetails loadUserByUsername (String username) throws UsernameNotFoundException ; } loadUserByUsername 方法返回一个 UserDetail 对象,该对象也是一个接口,包含一些用于描述用户信息的方法,源码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public interface UserDetails extends

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token

霸气de小男生 提交于 2020-07-06 03:03:23
问题 How to read below JSON using Jackson ObjectMapper ? I have developed code but getting below error. com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token at [Source: (File); line: 7, column: 19] (through reference chain: com.example.demo.resources.Orgnization["secondaryIds"]) JSON { "id": "100000", "name": "ABC", "keyAccount": false, "phone": "1111111", "phoneExtn": "11", "secondaryIds": { "ROP": [ "700010015

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token

浪子不回头ぞ 提交于 2020-07-06 03:02:18
问题 How to read below JSON using Jackson ObjectMapper ? I have developed code but getting below error. com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token at [Source: (File); line: 7, column: 19] (through reference chain: com.example.demo.resources.Orgnization["secondaryIds"]) JSON { "id": "100000", "name": "ABC", "keyAccount": false, "phone": "1111111", "phoneExtn": "11", "secondaryIds": { "ROP": [ "700010015