ObjectMapper

属性序列化自定义与字母表排序-JSON框架Jackson精解第3篇

孤街浪徒 提交于 2020-09-28 18:16:33
Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库。有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制。它提供了很多的JSON数据处理方法、注解,也包括 流式API、树模型、数据绑定 ,以及复杂数据类型转换等功能。它虽然简单易用,但绝对不是小玩具, 更多的内容我会写成一个系列,5-10篇文章,请您继续关注我。 《序列化与反序列化核心用法-JSON框架Jackson精解第一篇》 一、基础数据准备 二、序列化方法 三、反序列化方法 四、字段重命名 @JsonProperty 五、忽略null字段的序列化 @JsonInclude 六、忽略指定的字段 《特殊数据格式处理-JSON框架Jackson精解第2篇》 一、从URL读取JSON数据 二、Unknow Properties 赋值失败处理 三、未赋值Java Bean序列化 四、日期格式化 大家在平时进行JSON数据序列化过程中,经常会有按照一定顺序序列化属性这样的需求。本文为大家介绍如何对JSON序列化的属性进行排序,可以自定义顺序,也可以按照字母表顺序排序。 一、 @JsonPropertyOrder 属性排序 通过JsonPropertyOrder注解指定java POJO中各个成员变量的属性序列化顺序。 [@Data](https://my

springboot 缓存添加redis缓存支持

那年仲夏 提交于 2020-08-19 22:07:20
1.添加maven支持 <!-- springboot cache --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- shiro-redis --> <dependency> <groupId>org.crazycake</groupId> <artifactId>shiro-redis</artifactId> <version>2.4.2.1-RELEASE</version> </dependency> 2.配置redis环境参数 # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=127.0.0.1 # Redis服务器连接端口 spring.redis.port=6379 #

从零搭建Spring Boot脚手架(6):整合Redis作为缓存

女生的网名这么多〃 提交于 2020-08-19 12:38:37
1. 前言 上一文 我们整合了 Mybatis Plus ,今天我们会把缓存也集成进来。缓存是一个系统应用必备的一种功能,除了在减轻数据库的压力之外。还在存储一些短时效的数据场景中发挥着重大作用,比如存储用户 Token 、短信验证码等等,目前缓存的选型还是比较多的, EHCACHE 、 HAZELCAST 、 CAFFEINE 、 COUCHBASE 以及本文要整合的 REDIS 。接下来我们将会在 kono 脚手架项目中集成 Spring Cache 以及 Redis 。 > Gitee: https://gitee.com/felord/kono day05 分支 > GitHub: https://github.com/NotFound403/kono day05 分支 2. 整合目标 使项目具有缓存功能,同时将默认的 JDK 序列化修改为 Jackson 序列化以存储一些对象,同时实现一些特定的个性化的缓存空间以满足不同场景下的不同缓存 TTL 时间需求。 3. 依赖集成 目前只需要引入下面的依赖即可: <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-data-redis</artifactid> </dependency>

Spring Boot + Spring Security自定义用户认证

浪尽此生 提交于 2020-08-18 23:37:12
引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> 自定义认证过程 自定义认证的过程需要实现Spring Security提供的UserDetailService接口 ,源码如下: public interface UserDetailsService { UserDetails loadUserByUsername(String username) throws UsernameNotFoundException; } loadUserByUsername方法返回一个UserDetail对象

【微信小程序】springboot后台获取用户的openid

徘徊边缘 提交于 2020-08-18 21:34:19
openid可以标识一个用户,session_key会变,所以来获取一下openid。 openid不能在微信小程序中直接获取,需要后台发送请求到微信的接口,然后微信返回一个json格式的字符串到后台,后台处理之后,再返回到微信小程序。 发布的小程序需要https的域名,而测试的时候可以使用http。 小程序在app.js中,修改login()中的内容: // 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId if (res.code) { wx.request({ url: 'http://localhost:84/user/login' , method: 'POST' , data: { code: res.code }, header: { 'content-type': 'application/x-www-form-urlencoded' }, success(res) { console.log( "openid:"+ res.data.openid); if (res.data.openid != "" || res.data.openid!= null ){ // 登录成功 wx.setStorageSync("openid", res.data

spring oauth2+JWT后端自动刷新access_token

别来无恙 提交于 2020-08-18 12:23:11
这段时间在学习搭建基于spring boot的spring oauth2 和jwt整合。 说实话挺折腾的。使用jwt做用户鉴权,难点在于token的刷新和注销。 当然注销的难度更大,网上的一些方案也没有很出色的。这个功能基本让我放弃了jwt(滑稽笑~)。 所以今天我单纯的先记录jwt token的刷新。 Token刷新 jwt token刷新方案可以分为两种:一种是校验token前刷新,第二种是校验失败后刷新。 我们先来说说第二种方案 验证失效后,Oauth2框架会把异常信息发送到OAuth2AuthenticationEntryPoint类里处理。这时候我们可以在这里做jwt token刷新并跳转。 网上大部分方案也是这种:失效后,使用refresh_token获取新的access_token。并将新的access_token设置到response.header然后跳转,前端接收并无感更新新的access_token。 这里就不多做描述,可以参考这两篇: https://www.cnblogs.com/xuchao0506/p/13073913.html https://blog.csdn.net/m0_37834471/article/details/83213002 接着说第一种,其实两种方案的代码我都写过,最终使用了第一种。原因是兼容其他token刷新方案。

【微信小程序】springboot后台获取用户的openid

↘锁芯ラ 提交于 2020-08-17 04:30:05
openid可以标识一个用户,session_key会变,所以来获取一下openid。 openid不能在微信小程序中直接获取,需要后台发送请求到微信的接口,然后微信返回一个json格式的字符串到后台,后台处理之后,再返回到微信小程序。 发布的小程序需要https的域名,而测试的时候可以使用http。 小程序在app.js中,修改login()中的内容: // 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId if (res.code) { wx.request({ url: 'http://localhost:84/user/login' , method: 'POST' , data: { code: res.code }, header: { 'content-type': 'application/x-www-form-urlencoded' }, success(res) { console.log( "openid:"+ res.data.openid); if (res.data.openid != "" || res.data.openid!= null ){ // 登录成功 wx.setStorageSync("openid", res.data

Springboot集成flowable modeler web流程设计器

孤人 提交于 2020-08-16 23:48:14
之前画流程图都是用tomcat启动flowable modeler,但是这样启动就不能在分配任务用户/用户组的时候查询自己系统里的数据。所以现在需要把flowable modeler集成到项目里来。 之前自己也搜索了很多文章,都感觉不是很清晰,可能也是因为我刚接触不久。现在自己集成好了之后,记录一下自己学习的结果。 首先需要创建一个springboot应用,pom文件中引入相关jar包: <properties> <java.version>1.8</java.version> <flowable.version>6.4.1</flowable.version> <lombok.version>1.18.0</lombok.version> <fastjson.version>1.2.9</fastjson.version> </properties> < dependencyManagement > < dependencies > < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-dependencies </ artifactId > < type > pom </ type > < scope > import </ scope > </