在使用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中文乱码