flowable6.7.2工作流升级fastjson2
时间: 2023-10-24 18:09:47 浏览: 95
在 Flowable 6.7.2 中,Fastjson 1.x 被用于 JSON 数据的序列化和反序列化。如果你想升级到 Fastjson 2.x,你需要做以下几个步骤:
1. 在 pom.xml 文件中将 Fastjson 的版本从 1.x 升级到 2.x。
```
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.x.x</version>
</dependency>
```
2. 将 Flowable 的 ObjectNodeJsonConverter 替换为 Fastjson 的 JSON 类。
在 Flowable 6.7.2 中,ObjectNodeJsonConverter 类被用于将 JSON 数据转换为 ObjectNode 对象,并将 ObjectNode 对象转换为 JSON 数据。为了使用 Fastjson 2.x,你需要创建一个新的类来实现这个功能。例如,你可以创建一个名为 FastjsonJsonConverter 的类:
```
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.flowable.common.engine.api.variable.VariableContainer;
import org.flowable.variable.api.types.VariableType;
import org.flowable.variable.api.types.VariableTypes;
import org.flowable.variable.service.impl.types.JSONObjectType;
public class FastjsonJsonConverter extends JSONObjectType {
@Override
public String getTypeName() {
return "fastjson";
}
@Override
public Object convertJsonToValue(String jsonValue, VariableContainer container) {
VariableType variableType = VariableTypes.getType("json");
JSONObject jsonObject = JSON.parseObject(jsonValue);
return variableType.convertJsonToValue(jsonObject.toJSONString(), container);
}
@Override
public String convertModelValueToJson(Object modelValue) {
VariableType variableType = VariableTypes.getType("json");
String jsonValue = variableType.convertModelValueToJson(modelValue);
JSONObject jsonObject = JSON.parseObject(jsonValue);
return jsonObject.toJSONString();
}
}
```
3. 将新创建的 FastjsonJsonConverter 类注册到 Flowable。
你可以使用 Spring 配置文件或者 Java 代码将 FastjsonJsonConverter 类注册到 Flowable。如果你使用 Spring 配置文件,你需要添加以下的配置:
```
<bean id="fastjsonJsonConverter" class="com.example.FastjsonJsonConverter"/>
<bean id="variableTypes" class="org.flowable.variable.service.impl.DefaultVariableTypes">
<property name="variableTypes">
<map>
<entry key="fastjson" value-ref="fastjsonJsonConverter"/>
</map>
</property>
</bean>
```
如果你使用 Java 代码,你可以在流程引擎配置类中添加以下代码:
```
FastjsonJsonConverter fastjsonJsonConverter = new FastjsonJsonConverter();
variableTypes.addType(fastjsonJsonConverter);
```
完成以上步骤后,你就可以在 Flowable 中使用 Fastjson 2.x 来序列化和反序列化 JSON 数据了。
阅读全文