盘古BPM体验地址    盘古BPM交流群盘古BPM交流群号:963222735

flowable spring boot中文乱码

分享牛 4886℃

在使用flowable集成 spring boot的时候会经常遇到中文乱码的情况,因此本文重点讲解如何解决flowable的中文乱码问题。

1.flowable 集成spring boot(基础)

2.自定义配置器修改流程引擎配置类ProcessEngineConfigurationConfigurer  

3.测试ProcessEngineConfigurationConfigurer

4.spring boot flowable集成原理


1.flowable 集成spring boot


flowable 集成spring boot集成可以参考flowable 集成spring boot


2.自定义配置器修改流程引擎配置类。


自定义配置器修改流程引擎配置类代码如下:

import org.flowable.spring.SpringProcessEngineConfiguration;
import org.flowable.spring.boot.ProcessEngineConfigurationConfigurer;
import org.springframework.stereotype.Component;
@Component
public class ShareniuProcessEngineConfigurationConfigurer implements ProcessEngineConfigurationConfigurer  {
public void configure(SpringProcessEngineConfiguration processEngineConfiguration) {
processEngineConfiguration.setActivityFontName("宋体");
processEngineConfiguration.setLabelFontName("宋体");
processEngineConfiguration.setAnnotationFontName("宋体");
System.out.println("ShareniuProcessEngineConfigurationConfigurer#############");
System.out.println(processEngineConfiguration.getActivityFontName());
}
}

注意:

SpringProcessEngineConfiguration类为spring boot默认使用的流程引擎配置类,这一点一定要注意


3.测试ProcessEngineConfigurationConfigurer


运行如下类Application:

@RestController
@SpringBootApplication()
public class Application {
@RequestMapping("/task")
String task() {
System.out.println("################################" + taskService);
return taskService.toString();
}
@Autowired
private TaskService taskService;
@Autowired
private ProcessEngine processEngine;
@RequestMapping("/")
String index() {
System.out.println("################################taskService" + taskService);
System.out.println("################################processEngine" + processEngine);
return "xxxxxxxxxxxxx";
}
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(Application.class);
springApplication.run(args);
}
}

程序的输出如下:

ShareniuProcessEngineConfigurationConfigurer#############

宋体

证明我们已经成功修改了默认的字体。


4.原理


AbstractProcessEngineAutoConfiguration类的核心代码如下:

public abstract class AbstractProcessEngineAutoConfiguration   extends AbstractProcessEngineConfiguration {
@Autowired(required = false)
private ProcessEngineConfigurationConfigurer processEngineConfigurationConfigurer;
protected SpringProcessEngineConfiguration baseSpringProcessEngineConfiguration(DataSource dataSource, PlatformTransactionManager platformTransactionManager,
SpringAsyncExecutor springAsyncExecutor) throws IOException {
......//省略
if (processEngineConfigurationConfigurer != null) {
processEngineConfigurationConfigurer.configure(conf);
}
return conf;
}
}

道理非常的简单,如果存在processEngineConfigurationConfigurer,则调用该类中的configure方法。


转载请注明:分享牛 » flowable spring boot中文乱码