• 金仓数据库KingbaseES客户端编程开发框架-Activiti(4. SpringBoot整合Activiti配置说明)


    4. SpringBoot整合Activiti配置说明

    SpringBoot整合Activiti的包activiti-spring-boot-starter-basic中,未提供对参数databaseType的设置,所以需要对配置方式进行扩展。

    1. 在ActivitiDatasourceProperties.java中添加新增的配置参数:

    package com.example.activiti.config;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    
    @ConfigurationProperties(prefix = "spring.activiti")
    @Component
    public class ActivitiDatasourceProperties {
    
        private String databaseType;
    
        public String getDatabaseType() {
            return databaseType;
        }
    
        public void setDatabaseType(String databaseType) {
            this.databaseType = databaseType;
        }
    
    }
    
    1. 新建一个类继承AbstractProcessEngineAutoConfiguration类, 实现springProcessEngineConfiguration方法,在SpringProcessEngineConfiguration对象上设置需要新增的配置参数:

    package com.example.activiti.config;
    
    import java.io.IOException;
    
    import javax.sql.DataSource;
    
    import org.activiti.spring.SpringAsyncExecutor;
    import org.activiti.spring.SpringProcessEngineConfiguration;
    import org.activiti.spring.boot.AbstractProcessEngineAutoConfiguration;
    import org.activiti.spring.boot.ActivitiProperties;
    import org.activiti.spring.boot.JpaProcessEngineAutoConfiguration;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.autoconfigure.AutoConfigureAfter;
    import org.springframework.boot.autoconfigure.AutoConfigureBefore;
    import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
    import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.transaction.PlatformTransactionManager;
    
    @Configuration
    @AutoConfigureAfter({ DataSourceAutoConfiguration.class })
    @AutoConfigureBefore({ JpaProcessEngineAutoConfiguration.class })
    public class ActivitiConfig {
    
        @Configuration
        @EnableConfigurationProperties({ ActivitiProperties.class })
        public static class ActivitiConfiguration extends AbstractProcessEngineAutoConfiguration {
            private ActivitiDatasourceProperties activitiDatasourceProperties;
    
            public ActivitiDatasourceProperties getActivitiDatasourceProperties() {
                return activitiDatasourceProperties;
            }
    
            @Autowired
            public void setActivitiDatasourceProperties(
                    ActivitiDatasourceProperties activitiDatasourceProperties) {
                this.activitiDatasourceProperties = activitiDatasourceProperties;
            }
    
            @Bean
            @ConditionalOnMissingBean
            public SpringProcessEngineConfiguration springProcessEngineConfiguration(DataSource dataSource,
                    PlatformTransactionManager transactionManager, SpringAsyncExecutor springAsyncExecutor)
                    throws IOException {
                SpringProcessEngineConfiguration config = baseSpringProcessEngineConfiguration(dataSource,
                        transactionManager, springAsyncExecutor);
                config.setDatabaseType(this.activitiDatasourceProperties.getDatabaseType());
                return config;
            }
        }
    
    }
    
    1. 在SpringBoot的配置文件中,添加数据库类型的设置:

    spring.activiti.database-type=postgres
    

    注意

    使用KingbaseES适配Activiti时,如果使用PG形态的驱动,直接使用即可。如果使用KES形态的驱动,需要配置databaseType为postgres:

  • 相关阅读:
    飞机大战(python)
    IPv6与VoIP——配置Cisco CME实现VoIP实验
    WPF知识小结(3)
    redis面试题
    2022年国家高新企业认定申报最全问答-财务数据篇
    十五、【VUE-CLI】插槽 slot
    【算法】折半查找解析
    Git 开源的版本控制系统-07-gitignore 指定忽略版本管理的文件
    【DevOps】Gitlab的安装与升级
    集合Collection
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126868065