利用 spring 的占位符属性,可以动态替换属性值。
动态替换
可以在 spring 运行的时候,动态推送生效。
甚至不用重启项目。
配置设置
key
value
AppName
mode=offline/dev/test/pre/dev
version
remark
安全性
配置的加密+验签。
利用 spring 的占位符属性,可以动态替换属性值。
可以在 spring 运行的时候,动态推送生效。
甚至不用重启项目。
key
value
AppName
mode=offline/dev/test/pre/dev
version
remark
配置的加密+验签。
不同语言之间,或者相同语言之间。需要一种对象到 json (持久化)的一种实现方式。以及反序列化的方式。
以下是 DSL、fastjson、Gson、Jackson、Google Protocol Buffers、Apache Thrift、Hessian、Kryo、Fst、MessagePack 和 JBoss Marshalling 的详细对比表格:
特性 | DSL-Json | Fastjson | Gson | Jackson | Google Protocol Buffers | Apache Thrift | Hessian | Kryo | FST | MessagePack | JBoss Marshalling |
---|---|---|---|---|---|---|---|---|---|---|---|
类型 | JSON库 | JSON库 | JSON库 | JSON库 | 二进制序列化 | 跨语言序列化 | 二进制序列化 | 二进制序列化 | 二进制序列化 | 二进制序列化 | 二进制序列化 |
序列化性能 | 高效 | 快速 | 一般 | 高效 | 高效 | 高效 | 一般 | 高效 | 超高效 | 高效 | 高效 |
反序列化性能 | 高效 | 快速 | 一般 | 高效 | 高效 | 高效 | 一般 | 高效 | 超高效 | 高效 | 高效 |
支持的数据格式 | JSON | JSON | JSON | JSON, XML, YAML等 | Protobuf | Thrift | 二进制, JSON | 二进制 | 二进制 | 二进制, JSON | 二进制 |
数据类型支持 | JVM数据类型 | JVM数据类型 | JVM数据类型 | 广泛支持 | 结构化数据 | 结构化数据 | 结构化数据 | 结构化数据 | 结构化数据 | 结构化数据 | 结构化数据 |
跨语言支持 | 否 | 否 | 否 | 否 | 是 | 是 | 否 | 否 | 否 | 是 | 否 |
版本兼容性 | 较好 | 较好 | 较好 | 较好 | 良好 | 良好 | 良好 | 较好 | 较好 | 较好 | 良好 |
复杂对象支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
可扩展性 | 高 | 中 | 中 | 高 | 高 | 高 | 中 | 中 | 中 | 中 | 高 |
序列化/反序列化库 | 自带 | 自带 | 自带 | 自带 | 自带 | 自带 | 自带 | 自带 | 自带 | 自带 | 自带 |
学习曲线 | 低 | 低 | 低 | 中 | 中 | 中 | 低 | 低 | 低 | 中 | 中 |
社区支持 | 较小 | 大 | 大 | 大 | 大 | 大 | 中 | 中 | 中 | 中 | 中 |
dsl-json 是最快的 JVM(Java/Android/Scala/Kotlin)JSON 库,具有先进的编译时数据绑定支持。
与 DSL Platform 兼容。
这是一款为性能而设计的 Java JSON 库。
与 DSL Platform 编译器一起构建,用于侵入式软件组合。
编译时注解的效率,在于编译时就将所有的字节码生成完成,而保证源码的简洁性。同时不像运行时注解一样损失性能。
首先,在你的 pom.xml
文件中添加 Fastjson 依赖:
com.alibaba
fastjson
1.2.83
FST 是一个快速的 Java 序列化替代库。
Gson 是一个由 Google 开发的 Java 库,用于将 Java 对象序列化成 JSON 字符串,以及将 JSON 字符串反序列化成 Java 对象。
它支持广泛的数据类型,包括基本数据类型、集合、泛型、枚举等。Gson 以其简单易用和高性能而广受欢迎。
以下是 Gson 的一些主要特性:
简单的 Jackson 入门示例
添加 Jackson 依赖:
com.fasterxml.jackson.core
jackson-databind
2.15.0
jsoniter(json-iterator)是一款快且灵活的 JSON 解析器,同时提供 Java 和 Go 两个版本。
从 dsljson 和 jsonparser 借鉴了大量代码。
主流的 JSON 解析器是非常慢的。
Jsoniter Java 版本可以比常用的 jackson/gson/fastjson 快 3 倍。
如果你需要处理大量的 JSON 格式的日志,你应该考虑一下用 dsl-json 或者 Jsoniter 来节约可观的成本。
Hessian是一个动态类型,二进制序列化,也是网络协议为了对象的定向传输。
Hessian二进制的网络协议使不需要引入大型框架下就可以使用,并且不需要学习其它的入门的协议。
因为它是二进制协议,它更擅长于发送二进制数据,而不需要引入其它附件去扩展它的协议。
Hessian支持很多种语言,例如Java,Flash/Flex,python,c++,.net/c#,D,Erlang,PHP,Ruby,Object C等
Hessian是一个动态类型,简洁的,可以移植到各个语言
JBoss Marshalling 是一个替代的序列化 API,修复了 JDK 序列化 API 中的许多问题,同时完全兼容 java.io.Serializable
及其相关接口,并添加了多个可调参数和附加功能。
所有这些功能都可以通过工厂配置进行插拔(例如外部化器、类/实例查找表、类解析和对象替换)。
该框架的灵感来自对标准Object * Stream类不具备的某些功能的需求: