fastjson

必须了解的 MySQL 三大日志

别说谁变了你拦得住时间么 提交于 2020-11-02 14:50:31
点击上方蓝色“ 程序猿DD ”,选择“设为星标” 回复“ 资源 ”获取独家整理的学习资料! 来源 | juejin.im/post/6860252224930070536 「羊毛+福利」撸一波超便宜的云服务,完成任务DD另外送奖励! 日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。 mysql 日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。 作为开发,我们重点需要关注的是二进制日志( binlog )和事务日志(包括 redo log 和 undo log ),本文接下来会详细介绍这三种日志。 binlog binlog 用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。 binlog 是 mysql 的逻辑日志,并且由 Server 层进行记录,使用任何存储引擎的 mysql 数据库都会记录 binlog 日志。 逻辑日志 :可以简单理解为记录的就是sql语句 。 物理日志 : mysql 数据最终是保存在数据页中的,物理日志记录的就是数据页变更 。 binlog 是通过追加的方式进行写入的,可以通过 max_binlog_size 参数设置每个 binlog 文件的大小,当文件大小达到给定值之后,会生成新的文件来保存日志。 binlog使用场景 在实际应用中, binlog 的主要使用场景有两个

Android探究之Gson@SerializedName

流过昼夜 提交于 2020-11-01 14:33:15
###@SerializedName注解的意义 当我们使用Gson解析Json数据时都会创建一个对应实体类,有时候Json数据里面的字段是Java关键词或者Json数据里面的字段太简单,我们想在实体类中自定义字段名,这时就可以用@SerializedName注解。 @SerializedName注解,不管是对象转Json还是Json转对象,字段名称会被替换成注解的名字。 @SerializedName这个注解解决了我们Model和Json不对应的问题,好处: 首先将服务器字段和客户端字段名称区分,不用保持一一对应关系,客户端定义的字段不用根据服务端接口字段改变而改变,只需要更改@SerializedName中的取值即可; 我们输出一个Json格式的数据也可以使用@SerializedName不用为了输出格式而影响java中驼峰命名规范; ###实例 public class Test { public static void main(String[] args) { Gson gson = new Gson(); User user = new User("juneyu", "18"); String json = gson.toJson(user); System.out.println("obj->json:" + json); User user2 = gson

12-8 TestNG测试影片列表

五迷三道 提交于 2020-10-28 02:59:08
这里改成用String接收,因为一会解析的时候要用json去解析,直接转对象会比较麻烦, 把这个对象类全部复制过来。 使用fastjson 把films转换成java的类 判断计数器是否为1 执行这个测试方法、。filmName为空了 这里没有返回filmName 加上filmName 结束 来源: oschina 链接: https://my.oschina.net/u/4302850/blog/4277780

Springboot 整合 flowable modeler 免登录 查询用户 用户组

断了今生、忘了曾经 提交于 2020-10-26 05:13:01
之前画流程图都是用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 > </

Fastjson爆出重大漏洞,攻击者可使整个业务瘫痪

旧时模样 提交于 2020-10-25 12:34:36
360网络安全响应中心 https://cert.360.cn/warning/detail?id=82a509e4543433625d6fe4361b5802c9 报告编号:B6-2019-090501 报告来源:360-CERT 报告作者:360-CERT 更新日期:2019-09-05 0x00 漏洞背景 2019年9月5日,360CERT监测到2019年9月3日fastjson在commit 995845170527221ca0293cf290e33a7d6cb52bf7 上提交了旨在修复当字符串中包含\x转义字符时可能引发OOM的问题的修复。 360CERT 判断该漏洞危害中。影响面较大。攻击者可以通过发送构造好的请求而致使当前线程瘫痪,当发送的恶意请求过多时有可能使业务直接瘫痪。 建议广大用户对自身的业务/产品进行组件自查,防止自身业务受到攻击。 0x01 漏洞详情 漏洞的关键点在 com.alibaba.fastjson.parser.JSONLexerBase#scanString 中,当传入json字符串时,fastjson会按位获取json字符串,当识别到字符串为 \x 为开头时,会默认获取后两位字符,并将后两位字符与 \x 拼接将其变成完整的十六进制字符来处理: 而当json字符串是以 \x 结尾时,由于fastjson并未对其进行校验

PBFT算法java实现(上)

百般思念 提交于 2020-10-23 02:46:21
PBFT 算法的java实现(上) 在这篇博客中,我会通过Java 去实现PBFT中结点的加入,以及认证。其中使用socket实现网络信息传输。 关于PBFT算法的一些介绍,大家可以去看一看网上的博客,也可以参考我的上上一篇 博客 ,关于怎么构建P2P网络可以参考我的上一篇 博客 。 该项目的地址: GitHub 使用前的准备 使用maven构建项目,当然,也可以不使用,这个就看自己的想法吧。 需要使用到的Java包: t-io:使用t-io进行网络socket通信,emm,这个框架的文档需要收费(699RMB),但是这里我们只是简单的使用,不需要使用到其中很复杂的功能。 fastjson:Json 数据解析 lombok:快速的get,set以及toString hutool:万一要用到呢? lombok:节省代码 log4j:日志 guava:Google的一些并发包 结点的数据结构 首先的首先,我们需要来定义一下结点的数据结构。 首先是结点Node的数据结构: @Data public class Node extends NodeBasicInfo { /** * 单例设计模式 * @return */ public static Node getInstance () { return node; } private Node () {} private static

Spring Boot 使用 Maven 定制一个 parent 简化开发

血红的双手。 提交于 2020-10-15 06:43:02
1/ 场景 有很多小应用,有一些公共的特点,比如说都依赖了spring-boot、log4j2、lombok、fastjson等等,为了方便开发,可以使用Maven定制一个parent来简化开发,统一管理第三方依赖的版本。(为后续的微服务做准备哦!) 2/ 构建 parent 2.1. 新建一个Maven工程,any-root。 2.2. 修改pom.xml,添加父工程的依赖,基本上子工程都会用到这些依赖。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.ictgu</groupId> <artifactId>any-root</artifactId> <version>1.0.RELEASE</version> <packaging>pom<

Springboot集成flowable modeler web流程设计器

六月ゝ 毕业季﹏ 提交于 2020-10-14 13:54:59
之前画流程图都是用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> </dependency> <!--Spring Cloud-->

关于Ajax接收 后台返回的 Long类型数据的处理思路

旧时模样 提交于 2020-10-07 06:57:04
场景重现: 最近在开发 狐小E智慧办公 项目时,写ajax时遇到一个小坑,之前都是做后端开发,对前端js代码没有深入了解,只是会使用相关函数,当开发某个功能时,列表已经开发完成,点击列表跳转详情时老是报找不到数据错误,调试后发现每次后端返回的列表里有id,而查详情时,也是带着id,但是在数据库却无法查到。最终仔细对比发现后端返回列表的id和ajax里接收的id不一致。id返回到前端后已经不是正确的值了。发现只要后端返回的是long 类型的值 就会一定机率出现前端的值与后端接收的不一致的情况。 问题产生原因: JS内置有32位整数,而number类型的安全整数是53位。如果超过53位,则精度会丢失。也就是后端直接返回的Long类型数据超过53位,则前端接收时就会丢失精度。 解决方案: ① 修改对应后端的类,返回的VO对象Long类型字段转换为String类型,或者新定义一个String类型的字段将原始的Long类型值 toString()后存入即可。这样改的缺点就是需要改动的代码较多,不推荐。 ② 通过全局控制添加转换器 通过fastJson的转换 或者jackson 来实现全局将long类型转为String. 例如:SpringBoot默认使用jackson ,则只需要增加转换器即可 代码如下` @EnableWebMvc @Configuration public class

Springboot2.X + Smart-doc快速构建接口文档工具(75)

蓝咒 提交于 2020-10-04 03:47:45
1、设置方法注释 首先每个人都应该拥有写注释的规范,IDEA设置如下: 接口统一规范 /** * * @author mujiutian * @date $DATE$ $TIME$ * @param $params$ */ 2、 pom依赖添加插件 <plugin> <groupId> com.github.shalousun </groupId> <artifactId> smart-doc-maven-plugin </artifactId> <version> 1.1.0 </version> <configuration> <!--指定生成文档的使用的配置文件,配置文件放在自己的项目中--> <configFile> ./src/main/resources/smart-doc.json </configFile> <!--指定项目名称--> <projectName> 测试 </projectName> <!--smart-doc实现自动分析依赖树加载第三方依赖的源码,如果一些框架依赖库加载不到导致报错,这时请使用excludes排除掉--> <excludes> <!--格式为:groupId:artifactId;参考如下--> <!--1.0.7版本开始你还可以用正则匹配排除,如:poi.* --> <exclude> com.alibaba:fastjson <