Jackson 注解及配置大全

Jackson JSON 框架中包含了大量的注解来让我们可以干预 Jackson 的 JSON 处理过程,
例如我们可以通过注解指定 java pojo 的某些属性在生成 json 时被忽略。。本文主要介绍如何使用 Jackson 提供的注解。
Jackson注解主要分成三类,一是只在序列化时生效的注解;二是只在反序列化时候生效的注解;三是两种情况下都生效的注解。
在这里插入图片描述
多态注解
在这里插入图片描述
对象双向引用及对象ID
@JsonManagedReference,@JsonBackReference: 这对注解,用于指示和处理用一对匹配属性表示的父/子关系 (双向引用将导致无限递归)。

@JsonIdentityInfo: 类/属性注解 用于指示在序列化/反序列化值时要使用“对象标识id”,以便可以正确反序列化对单个 Java 对象的多个引用

配置大全


spring:jackson:# 设置属性命名策略,对应jackson下PropertyNamingStrategy中的常量值,SNAKE_CASE-返回的json驼峰式转下划线,json body下划线传到后端自动转驼峰式property-naming-strategy: SNAKE_CASE# 全局设置@JsonFormat的格式patterndate-format: yyyy-MM-dd HH:mm:ss# 当地时区locale: zh_CN# 设置全局时区time-zone: GMT+8# 常用,全局设置pojo或被@JsonInclude注解的属性的序列化方式default-property-inclusion: NON_NULL #不为空的属性才会序列化,具体属性可看JsonInclude.Include# 常规默认,枚举类SerializationFeature中的枚举属性为key,值为boolean设置jackson序列化特性,具体key请看SerializationFeature源码visibility:#属性序列化的可见范围getter: non_private#属性反序列化的可见范围setter: protected_and_public#静态工厂方法的反序列化CREATOR: public_only#字段FIELD: public_only#布尔的序列化IS_GETTER: public_only#所有类型(即getter setter FIELD)不受影响,无意义NONE: public_only#所有类型(即getter setter FIELD)都受其影响(慎用)ALL: public_onlyserialization:#反序列化是否有根节点WRAP_ROOT_VALUE: false#是否使用缩进,格式化输出INDENT_OUTPUT: falseFAIL_ON_EMPTY_BEANS: true # 对象不含任何字段时是否报错,默认trueFAIL_ON_SELF_REFERENCES: true #循环引用报错WRAP_EXCEPTIONS: true #是否包装异常FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS: true #JsonUnwrapped标记的类有类型信息是否报错WRITE_SELF_REFERENCES_AS_NULL: false #循环引用返回nullCLOSE_CLOSEABLE: true #若对象实现了CLOSEABLE接口,在序列化后是否调用Close方法FLUSH_AFTER_WRITE_VALUE: false #流对象序列化之后是否强制刷新WRITE_DATES_AS_TIMESTAMPS: true # 返回的java.util.date转换成时间戳WRITE_DATES_WITH_ZONE_ID: true #2011-12-03T10:15:30+01:00[Europe/Paris]带时区idWRITE_DURATIONS_AS_TIMESTAMPS: true #将DURATIONS转换成时间戳WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS: false #是否字符数组输出json数组 (false则输出字符串)WRITE_ENUMS_USING_TO_STRING: false # 将枚举输出toStringWRITE_ENUMS_USING_INDEX: false #枚举下标WRITE_ENUM_KEYS_USING_INDEX: false #枚举key类似WRITE_NULL_MAP_VALUES: false #是否输出map中的空entry(此特性已过期,请使用JsonInclude注解)WRITE_EMPTY_JSON_ARRAYS: true # 对象属性值是空集合是否输出空json数组WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED: false #是否将单个元素的集合展开,(即:去除数组符号"[]"WRITE_BIGDECIMAL_AS_PLAIN: false #是否调用BigDecimal#toPlainString()输出WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS: #将timestamp输出为纳秒ORDER_MAP_ENTRIES_BY_KEYS: false #map序列化后,是否用key对其排序EAGER_SERIALIZER_FETCH: true #是否马上获取序列化器USE_EQUALITY_FOR_OBJECT_ID: false #是否使用objectId比较是否相等(在ORM框架Hibernate中有应用)# 枚举类DeserializationFeature中的枚举属性为key,值为boolean设置jackson反序列化特性,具体key请看DeserializationFeature源码deserialization:USE_BIG_DECIMAL_FOR_FLOATS: false #将浮点数反序列化为BIG_DECIMALUSE_BIG_INTEGER_FOR_INTS: false #将整数反序列化为BIG_INTEGERUSE_LONG_FOR_INTS: false #将整型反序列化为长整USE_JAVA_ARRAY_FOR_JSON_ARRAY: false #无明确类型时,是否将json数组反序列化为java数组(若是true,就对应Object[] ,反之就是List<?>FAIL_ON_UNKNOWN_PROPERTIES: false # 常用,json中含pojo不存在属性时是否失败报错,默认trueFAIL_ON_NULL_FOR_PRIMITIVES: false #将null反序列化为基本数据类型是否报错FAIL_ON_NUMBERS_FOR_ENUMS: false #用整数反序列化为枚举是否报错FAIL_ON_INVALID_SUBTYPE: false #找不至合适的子类否报错 (如注解JsonTypeInfo指定的子类型)FAIL_ON_READING_DUP_TREE_KEY: false #出现重复的json字段是否报错FAIL_ON_IGNORED_PROPERTIES: false #如果json中出现了java实体字段中已显式标记应当忽略的字段,是否报错FAIL_ON_UNRESOLVED_OBJECT_IDS: true #如果反序列化发生了不可解析的ObjectId是否报错FAIL_ON_MISSING_CREATOR_PROPERTIES: false #如果缺少静态工厂方法的参数是否报错(false,则使用null代替需要的参数)FAIL_ON_NULL_CREATOR_PROPERTIES: false #将空值绑定到构造方法或静态工厂方法的参数是否报错FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY: false #注解JsonTypeInfo.As#EXTERNAL_PROPERTY标记的属性缺失,是否报错FAIL_ON_TRAILING_TOKENS: false #出现尾随令牌是否报错(如果是true,则调用JsonParser#nextToken,检查json的完整性)WRAP_EXCEPTIONS: true #是否包装反序列化出现的异常ACCEPT_SINGLE_VALUE_AS_ARRAY: true #反序列化时是否将一个对象封装成单元素数组UNWRAP_SINGLE_VALUE_ARRAYS: false #反序列化时是否将单元素数组展开为一个对象UNWRAP_ROOT_VALUE: false #是否将取消根节点的包装ACCEPT_EMPTY_STRING_AS_NULL_OBJECT: false #是否将空字符("")串当作null对象ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT: false #是否接受将空数组("[]")作为nullACCEPT_FLOAT_AS_INT: true #是否接受将浮点数作为整数READ_ENUMS_USING_TO_STRING: false #按照枚举toString()方法读取,(false则按枚举的name()方法读取)READ_UNKNOWN_ENUM_VALUES_AS_NULL: false #读取到未知的枚举当作nullREAD_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE: false #读取到未知的枚举,将其当作被JsonEnumDefaultValue注解标记的枚举READ_DATE_TIMESTAMPS_AS_NANOSECONDS: true #将时间戳视为纳秒(false,则视为毫秒)ADJUST_DATES_TO_CONTEXT_TIME_ZONE: true #反序列化是否会适应DeserializationContext#getTimeZone()提供的时区 (此特性仅对java8的时间/日期有效)EAGER_DESERIALIZER_FETCH: true  #是否马上获取反序列化器# 枚举类MapperFeature中的枚举属性为key,值为boolean设置jackson ObjectMapper特性# ObjectMapper在jackson中负责json的读写、json与pojo的互转、json tree的互转,具体特性请看MapperFeature,常规默认即可mapper:USE_ANNOTATIONS: true #是否使用注解自省(检查JsonProperties这些)# 使用getter取代setter探测属性,这是针对集合类型,可以直接修改集合的属性USE_GETTERS_AS_SETTERS: true #默认falsePROPAGATE_TRANSIENT_MARKER: false #如何处理transient字段,如果true(不能访问此属性) ,若是false则不能通过字段访问(还是可以使用getter和setter访问)AUTO_DETECT_CREATORS: true #是否自动检测构造方法或单参且名为valueOf的静态工厂方法AUTO_DETECT_FIELDS: true #是否自动检测字段 (若true,则将所有public实例字段视为为属性)AUTO_DETECT_GETTERS: true #确定是否根据标准 Bean 命名约定自动检测常规“getter”方法的(不包括is getter)AUTO_DETECT_IS_GETTERS: true #确定是否根据标准 Bean 命名约定自动检测“is getter”方法AUTO_DETECT_SETTERS: false # 确定是否根据标准 Bean 命名约定自动检测“setter”方法REQUIRE_SETTERS_FOR_GETTERS: false #getter方法必需要有对应的setter或字段或构造方法参数,才能视为一个属性ALLOW_FINAL_FIELDS_AS_MUTATORS: true #是否可以修改final成员字段INFER_PROPERTY_MUTATORS: true #是否能推断属性,(即使用字段和setter是不可见的,但getter可见即可推断属性)INFER_CREATOR_FROM_CONSTRUCTOR_PROPERTIES: true #是否自动推断ConstructorProperties注解CAN_OVERRIDE_ACCESS_MODIFIERS: true #调用AccessibleObject#setAccessible设为true .将原来不可见的属性,变为可见OVERRIDE_PUBLIC_ACCESS_MODIFIERS: true #对所有的属性调用AccessibleObject#setAccessible设为true .(即使用是公共的)USE_STATIC_TYPING: false #序列化使用声明的静态类型还是动态类型  JsonSerialize#typing注解可覆盖它USE_BASE_TYPE_AS_DEFAULT_IMPL: false # 反序列化是否使用基本类作为默实现 @JsonTypeInfo.defaultImplDEFAULT_VIEW_INCLUSION: true #没有JsonView注解标记的属性是否会被包含在json序列化视图中SORT_PROPERTIES_ALPHABETICALLY: false #按字母表顺序序列化字段(若false,按字段声明的顺序)ACCEPT_CASE_INSENSITIVE_PROPERTIES: false #反序列化属性时不区分大小写 (true时,会影响性能)ACCEPT_CASE_INSENSITIVE_ENUMS: false #枚举反序列化不区别大小写ACCEPT_CASE_INSENSITIVE_VALUES: false #允许解析一些枚举的基于文本的值类型但忽略反序列化值的大小写 如日期/时间类型反序列化器USE_WRAPPER_NAME_AS_PROPERTY_NAME: false # 使用包装器名称覆盖属性名称 AnnotationIntrospector#findWrapperName指定的USE_STD_BEAN_NAMING: false # 是否以强制与 Bean 名称自省严格兼容的功能,若开启后(getURL())变成URL (jackson默认false, url)ALLOW_EXPLICIT_PROPERTY_RENAMING: false #是否允许JsonProperty注解覆盖PropertyNamingStrategyALLOW_COERCION_OF_SCALARS: true # 是否允许强制使用文本标题 ,即将字符串的"true"当作布尔的true ,字符串的"1.0"当作"double"IGNORE_DUPLICATE_MODULE_REGISTRATIONS: true #如果模块相同(Module#getTypeId()返回值相同),只有第一次能会真正调用注册方法IGNORE_MERGE_FOR_UNMERGEABLE: true #在合并不能合并的属性时是否忽略错误BLOCK_UNSAFE_POLYMORPHIC_BASE_TYPES: false #阻止不安全的基类(如Object Closeable Cloneable AutoCloseable Serializable)parser:AUTO_CLOSE_SOURCE: true #是否自动关闭不属于解析器的底层输入流ALLOW_COMMENTS: false #是否允许json注解(Json规范是不能加注释的,但这里可以配置)ALLOW_YAML_COMMENTS: false #是否允许出现yaml注释ALLOW_UNQUOTED_FIELD_NAMES: false #是否允许出现字段名不带引号ALLOW_SINGLE_QUOTES: false # 是否允许出现单引号,默认falseALLOW_UNQUOTED_CONTROL_CHARS: false #是否允许出现未加转义的控制字符ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER: false #是否允许对所有字符都可加反斜杠转义ALLOW_NUMERIC_LEADING_ZEROS: false #是否允许前导的零 000001ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS: false #是否允许前导的小点数 如 ".04314"会被解析成"0.04314"ALLOW_NON_NUMERIC_NUMBERS: false #是否允许NaN型的浮点数 ("INF"当作正无穷  "-INF"当作负无穷 "NaN"非数字,类型于除数为0ALLOW_MISSING_VALUES: false # 是否允许json数组中出现缺失值 (如["value1",,"value3",]将被反序列化为["value1", null, "value3", null]ALLOW_TRAILING_COMMA: false # 是否允许json尾部有逗号 (如{"a": true,}STRICT_DUPLICATE_DETECTION: false #是否启用严格的字段名重复检查(开启后会增加20-30%左右的性能开销)IGNORE_UNDEFINED: false #属性定义未找到是否报错(这不是针对json,是针对Avro, protobuf等需要Schema的格式)INCLUDE_SOURCE_IN_LOCATION: false #是否包含其源信息(如总字节数,总字符数 行号 列号 )generator:AUTO_CLOSE_TARGET: true #是否自动关闭不属于生成器的底层输出流AUTO_CLOSE_JSON_CONTENT: true #是否自动补全json(当有不匹配的JsonToken#START_ARRAY JsonToken#START_OBJECT)FLUSH_PASSED_TO_STREAM: true #是否刷新generatorQUOTE_FIELD_NAMES: true #是否为字段名添加引号QUOTE_NON_NUMERIC_NUMBERS: true #对于NaN浮点数是否加引号ESCAPE_NON_ASCII: false #非ASCII码是否需要转义WRITE_NUMBERS_AS_STRINGS: false #将数字当作字符串输出 (防止Javascript长度限制被截断)WRITE_BIGDECIMAL_AS_PLAIN: false #按BigDecimaltoPlainString()输出STRICT_DUPLICATE_DETECTION: false #是否启用严格的字段名重复检查IGNORE_UNKNOWN: false #属性定义未找到是否报错(这不是针对json,是针对Avro, protobuf等需要Schema的格式)

一: 两种情况下都有效的注解

  1. @JsonIgnore 作用域属性或方法上
    @JsonIgnore 用来告诉 Jackson 在处理时忽略该注解标注的 java pojo 属性,
    不管是将 java 对象转换成 json 字符串,还是将 json 字符串转换成 java 对象。
@Data
public class SellerInfoEntityprivate String id;private String username;private String password;private String openid;@JsonIgnoreprivate Timestamp createTime;@JsonIgnoreprivate Timestamp updateTime;public SellerInfoEntity() {}public SellerInfoEntity(String id, String username, String password, String openid) {this.id = id;this.username = username;this.password = password;this.openid = openid;}
}
  1. @JsonIgnoreProperties 作用在类上
    @JsonIgnoreProperties 和 @JsonIgnore 的作用相同,都是告诉 Jackson 该忽略哪些属性,
    不同之处是 @JsonIgnoreProperties 是类级别的,并且可以同时指定多个属性。
@Data
@JsonIgnoreProperties(value = {"createTime","updateTime"})
public class SellerInfoEntityprivate String id;private String username;private String password;private String openid;private Timestamp createTime;private Timestamp updateTime;public SellerInfoEntity() {}public SellerInfoEntity(String id, String username, String password, String openid) {this.id = id;this.username = username;this.password = password;this.openid = openid;}
}

访问: localhost/sell/jackson/test1

使用注解前:返回值

{"code": 0,"msg": "成功","data": {"id": "1","username": "user1","password": "123456","openid": "openid","createTime": null,"updateTime": null}
}

使用注解后:返回值

{"code": 0,"msg": "成功","data": {"id": "1","username": "user1","password": "123456","openid": "openid",}
}
  1. @JsonIgnoreType
    @JsonIgnoreType 标注在类上,当其他类有该类作为属性时,该属性将被忽略。
package org.lifw.jackosn.annotation;
import com.fasterxml.jackson.annotation.JsonIgnoreType;
@JsonIgnoreType
public class SomeOtherEntityprivate Long id;public Long getId() {return id;}public void setId(Long id) {this.id = id;}
}
public class SomeEntityprivate String name;private String desc;private

SomeEntity 中的 entity 属性在json处理时会被忽略。

  1. @JsonProperty
    @JsonProperty 可以指定某个属性和json映射的名称。例如我们有个json字符串为{“user_name”:”aaa”},
    而java中命名要遵循驼峰规则,则为userName,这时通过@JsonProperty 注解来指定两者的映射规则即可。这个注解也比较常用。
public class SomeEntity@JsonProperty("user_name")private String userName;// ...

二、只在序列化情况下生效的注解

  1. @JsonPropertyOrder
    在将 java pojo 对象序列化成为 json 字符串时,使用 @JsonPropertyOrder 可以指定属性在 json 字符串中的顺序。

  2. @JsonInclude
    在将 java pojo 对象序列化成为 json 字符串时,使用 @JsonInclude 注解可以控制在哪些情况下才将被注解的属性转换成 json,例如只有属性不为 null 时。

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SellerInfoEntityprivate String id;private String username;@JsonInclude(JsonInclude.Include.NON_EMPTY)private String password;private String openid;private Timestamp createTime;private Timestamp updateTime;public SellerInfoEntity() {}public SellerInfoEntity(String id, String username, String password, String openid) {this.id = id;this.username = username;this.password = password;this.openid = openid;}
}

Controller 测试

@RestController
@RequestMapping("/jackson")
public class TestJackson@RequestMapping("test1")public Result test1(){SellerInfoEntity entity = new SellerInfoEntity("1","user1","","openid");return new

结果:

{"code": 0,"msg": "成功","data": {"id": "1","username": "user1","openid": "openid"}
}

上述例子的意思是 SellerInfoEntity 的所有属性只有在不为 null 的时候才被转换成 json,
如果为 null 就被忽略。并且如果password为空字符串也不会被转换.

该注解也可以加在某个字段上。

另外还有很多其它的范围,例如 NON_EMPTY、NON_DEFAULT等

三、是在反序列化情况下生效的注解

  1. @JsonSetter
    @JsonSetter 标注于 setter 方法上,类似 @JsonProperty ,也可以解决 json 键名称和 java pojo 字段名称不匹配的问题。
public class SomeEntityprivate String desc;@JsonSetter("description")public void setDesc(String desc) {this.desc = desc;}
}

上述例子中在将 json 字符串转换成 SomeEntity 实例时,会将 json 字符串中的 description 字段赋值给 SomeEntity 的 desc 属性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Guava自加载缓存LoadingCache使用指南

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;今天我们来聊聊缓存。在Java世界里&#xff0c;高效的缓存机制对于提升应用性能、降低数据库负担至关重要。想象一下&#xff0c;如果每次数据请求都要跑到数据库里取&#xff0c;那服务器岂不是要累趴了&#x…

js禁止打开控制台,如何强行打开控制台?

当我在查看某个网站的源码时&#xff0c;按F12会跳转到百度页面&#xff0c;或者先打开F12再输入网站也会进入到百度首页。 首先我们要关闭控制台进入到这个网站的首页&#xff0c;然后右键查 看网站的源码。 1.找到这个js文件&#xff0c;点进去。 2.点击这个js文件之后&a…

鸿蒙崛起了,再不加入恐怕要错过下个时代了

在华为9月25日的发布会上&#xff0c;余承东宣布“全新鸿蒙HarmonyOS NEXT蓄势待发&#xff0c;鸿蒙原生应用全面启动”&#xff0c;可以说一石激起千层浪。华为毅然决然的迈出了全新的一步&#xff0c;鸿蒙原生应用的全面启动&#xff0c;让人感觉又要有什么大事发生&#xff…

TIDB7.5LTS集群安装配置手册

简介 因近期有一个项目需要上线,在评估使用什么架构时,和开发同仁沟通需求,了解到该应用为OLTP但是数据量很集中,会有几张超大的表,如果要保证事务效率,使用mysql集群难免会要做分库分表,对后期的运维带来很大的挑战;而TIDB属于分布式集群,TIKV的行存模式非常适用于大…

微信小程序管理奖品(抽奖)

话不多说直接上代码 功能&#xff1a; 使用微信小程序vant-weapp 组件库中的upload组件以及两个input框 最后拿到的值是一个数组对象的形式 主要代码如下&#xff1a; wxml <view wx:for"{{prizes}}" wx:key"index" class"inputs"><i…

【算法刷题】Day21

1. 【模板】前缀和 原题链接 题干&#xff1a; 给定一个长度为 n 的数组 有 q 次查询&#xff0c;每次有两个参数 l 和 r 算法原理&#xff1a; 1. 暴力解法 &#xff08;模拟&#xff09; 这个时间复杂度是 O(n) 2. 前缀和&#xff08;快速求出数组中某一个连续区间的和&…

DOM是什么?

1、概述 &#xff08;1&#xff09;DOM代表文档对象模型&#xff0c;是 HTML 和 XML 文档的接口&#xff08;API&#xff09; &#xff08;2&#xff09;当浏览器第一次读取&#xff08;解析&#xff09;HTML文档时&#xff0c;会创建一个基于 HTML 文档的大对象&#xff0c;…

听GPT 讲Rust源代码--src/tools(15)

File: rust/src/tools/rust-analyzer/crates/mbe/src/token_map.rs 在Rust源代码中&#xff0c;rust/src/tools/rust-analyzer/crates/mbe/src/token_map.rs文件的作用是实现了一个能够将输入的文本映射为标记的结构。具体来说&#xff0c;它定义和实现了几个结构体&#xff08…

数据库(三)超详细SQL语句入门 | SQL增删改查,重命名,字符操作,联合操作,聚合函数,嵌套子查询

文章目录 1 SQL表内类型2 SQL增删改语句2.1 创建表2.2 删除表2.3 表中添加属性2.4 添加新的元组信息2.5 删除表所有元组2.6 元组 3 查询语句4 重命名4.1 为什么用 5 字符操作5.1 寻找 6 生序降序7 联合操作7.1 并集Union7.2 交集 INTERSECT7.3 差集 EXCEPT7.4 对于空值补充 8 聚…

掀起全新的互联网直播风潮

随着科技的不断进步和智能手机的普及&#xff0c;无人直播作为一种全新的互联网直播方式&#xff0c;在近些年迅速崛起&#xff0c;并引起了广泛关注。本文将围绕手机无人直播展开探讨&#xff0c;探究其背后的原因以及对社会生活带来的影响。 首先&#xff0c;我们需要明确什…

[Angular] 笔记 5:ngClass

Angular 中的 ngClass 是什么&#xff1f; chatgpt 回答&#xff1a; 在Angular中&#xff0c;ngClass 是一个内置的指令&#xff0c;用于动态地添加或移除 HTML 元素的 CSS 类。它允许你根据条件设置一个或多个 CSS 类&#xff0c;可以是对象、数组或字符串。 使用方式&#…

一篇文章带你进阶CTF命令执行

以下的命令是为了方便以后做题时方便各位读者直接来这里复制使用&#xff0c;刚开始还请先看完这篇文章后才会懂得下面的命令 ?ceval($_GET[shy]);&shypassthru(cat flag.php); #逃逸过滤 ?cinclude%09$_GET[shy]?>&shyphp://filter/readconvert.base64-…

mysql:查看服务端没有睡眠的线程数量

使用命令show global status like Threads_running;可以查看服务端没有睡眠的线程数量。 例如&#xff1a;

玩转Spring状态机

说起Spring状态机&#xff0c;大家很容易联想到这个状态机和设计模式中状态模式的区别是啥呢&#xff1f;没错&#xff0c;Spring状态机就是状态模式的一种实现&#xff0c;在介绍Spring状态机之前&#xff0c;让我们来看看设计模式中的状态模式。 1. 状态模式 状态模式的定义如…

[Encryptedd@mailfence.com].faust 勒索病毒肆虐:如何恢复被加密的数据文件?

导言&#xff1a; 在网络安全的战场上&#xff0c;[backupsairmail.cc].faust [Deciphermailfence.com].faust[Encrypteddmailfence.com].faust[support2022cock.li].faust [tsai.shenmailfence.com].faust勒索病毒是一种极具破坏性的恶意软件。本文91数据恢复将深入介绍该病毒…

【krita】实时绘画 入门到精通 海报+电商+装修+人物

安装插件 首先打开comfyUI&#xff0c;再打开krita&#xff0c;出现问题提示&#xff0c; 打开 cd custom_nodes 输入命令 安装控件 git clone https://github.com/Acly/comfyui-tooling-nodes.git krita基础设置 设置模型 设置lora &#xff08;可设置lora强度 增加更多…

◢Django md5加密与中间件middleware

utils文件夹是重新建立的&#xff08;与migrations同级&#xff09;&#xff0c;该文件夹下主要存放工具&#xff0c;就像static文件夹下只存放静态文件一样 加密 在utils文件夹下建立encrypt.py文件 from django.conf import settings import hashlib def md5(data_string)…

Airtest1.2.7新增断言API介绍

1. 前言 1.2.7版本的Airtest中&#xff0c;一个很重要的功能是 新增了非常丰富的断言API &#xff0c;今天我们就来详细看一下Airtest都给我们提供了哪些断言语句。 2. 旧版Airtest提供的断言语句 先回顾下&#xff0c;旧版Airtest一直以来&#xff0c;都只给我们提供了2种断言…

Samtec信号完整性 这家连接器的设计很优秀!

【Samtec技术研发&#xff1a;信号完整性设计】 1. 什么是信号完整性&#xff1f; 信号完整性需要在整个系统和组件设计过程中加以考虑。与过去不同的是&#xff0c;互连不再是事后考虑的问题。随着上升时间的缩短和时钟频率的提高&#xff0c;曾经被认为是电气透明的连接器和…

阿里云经济型、通用算力型、计算型、通用型、内存型云服务器最新活动报价

阿里云作为国内领先的云计算服务提供商&#xff0c;提供了多种规格的云服务器供用户选择。为了满足不同用户的需求&#xff0c;阿里云推出了经济型、通用算力型、计算型、通用型和内存型等不同类型的云服务器。下面将详细介绍这些云服务器的最新活动报价。 一、阿里云特惠云服…