springboot2.x+h2+activiti6环境搭建记录

由于需要用到activiti6工作流,经过艰难的配置终于把环境搭起来了,结合查的和自己踩的坑,记录下过程,以备后用。

1.eclipse安装activi插件

我的eclipse是Eclipse IDE for RCP and RAP Developers,在线安装一直失败,最终离线安装搞定。

参照https://blog.csdn.net/qq_24583853/article/details/85270214安装成功

2.配置h2数据库和activiti6

配置文件配置如下,采用本地文件方式存储

#配置数据库h2的参数
spring.datasource.url=jdbc:h2:./db/H2/testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=sa

spring.h2.console.enabled=true

spring.activiti.database-schema-update=true

spring.activiti.check-process-definitions=false
spring.activiti.process-definition-location-prefix: classpath:/processes/

3.pom的主要配置

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> 
    </parent>

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency><dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
         <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-basic</artifactId>
            <version>6.0.0</version>
        </dependency><dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-common-rest</artifactId>
    <version>6.0.0</version>
</dependency>

<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

4.参数加载配置代码

对于数据库和mybatis参数用config配置类进行加载如下:

  • 
    @Configuration
    @ConfigurationProperties(prefix = "spring.datasource")
    @MapperScan(basePackages = { DataSourceConstants.MAPPER_PACKAGE }, sqlSessionFactoryRef = "mybatisSqlSessionFactory")
    public class DataSourceConfig {
    
        private String url;
    
        private String username;
    
        private String password;
        
        @Bean(name = "mybatisDataSource")
        public DataSource mybatisDataSource() {
            DruidDataSource dataSource = new DruidDataSource();
            dataSource.setDriverClassName("org.h2.Driver");
            dataSource.setUrl(url);
            dataSource.setUsername(username);
            dataSource.setPassword(password);
            return dataSource;
        }
    
        @Bean(name = "mybatisTransactionManager")
        public DataSourceTransactionManager mybatisTransactionManager() {
            return new DataSourceTransactionManager(mybatisDataSource());
        }
    
    	@Bean
    
    	public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
    		//防止前端不填值后端插入失败
    		sqlSessionFactory.getConfiguration().setJdbcTypeForNull(JdbcType.NULL);
    		return new SqlSessionTemplate(sqlSessionFactory);
    	}
        
        @Bean(name = "mybatisSqlSessionFactory")
        public SqlSessionFactory mybatisSqlSessionFactory(@Qualifier("mybatisDataSource") DataSource mybatisDataSource)
                throws Exception {
            final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
            sessionFactory.setDataSource(mybatisDataSource);
            sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
                    .getResources(DataSourceConstants.MAPPER_LOCATION));
          
            return sessionFactory.getObject();
        }
    
        public String getUrl() {
            return url;
        }
    
        public void setUrl(String url) {
            this.url = url;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
    }

    activiconfig

  • @Configuration
    	public class ActivitiConfig {
    	 
    	    @Value("${spring.datasource.url}")
    	    private String url;
    	 
    	    @Value("${spring.datasource.username}")
    	    private String userName;
    	 
    	    @Value("${spring.datasource.password}")
    	    private String password;
    	 
    	    @Value("${spring.datasource.driver-class-name}")
    	    private String driver;	 	
    	 
    	    @Bean
    	    public ProcessEngineConfiguration processEngineConfiguration() {
    	        ProcessEngineConfiguration processEngineConfiguration = new StandaloneProcessEngineConfiguration();
    	        // 连接数据库的配置
    	        processEngineConfiguration.setJdbcDriver(driver);
    	        processEngineConfiguration.setJdbcUrl(url);
    	        processEngineConfiguration.setJdbcUsername(userName);
    	        processEngineConfiguration.setJdbcPassword(password);
    	       // processEngineConfiguration.setAsyncExecutorActivate(true);
    	       // processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
    	        return processEngineConfiguration;
    	    }
    	    
    	   /* @Bean
    	    public ProcessEngine processEngine() {
    	        return processEngineConfiguration().buildProcessEngine();
    	    }
    	    */
    	    @Bean
    	    public RepositoryService repositoryService() {
    	        return processEngineConfiguration().buildProcessEngine().getRepositoryService();
    	    }
    	 
    	    @Bean
    	    public RuntimeService runtimeService() {
    	        return processEngineConfiguration().buildProcessEngine().getRuntimeService();
    	    }
    	 
    	    @Bean
    	    public TaskService taskService() {
    	        return processEngineConfiguration().buildProcessEngine().getTaskService();
    	    }
    	 
    	    @Bean
    	    public FormService formService() {
    	        return processEngineConfiguration().buildProcessEngine().getFormService();
    	    }
    	 
    	    @Bean
    	    public HistoryService historyService() {
    	        return processEngineConfiguration().buildProcessEngine().getHistoryService();
    	    }
    	 
    	    @Bean
    	    public ManagementService managementService() {
    	        return processEngineConfiguration().buildProcessEngine().getManagementService();
    	    }
    	 
    	    @Bean
    	    public IdentityService identityService() {
    	        return processEngineConfiguration().buildProcessEngine().getIdentityService();
    	    }
    	}

     

  • 启动类

  • @SpringBootApplication
    @EnableAutoConfiguration(exclude = {     
            org.activiti.spring.boot.SecurityAutoConfiguration.class
    })
    
    public class Application {
    
    	public static void main(String[] args) {
    		SpringApplication.run(Application.class, args);
    	}

    在启动类中,一定要加上剃掉security的权限校验,不然每次需要权限校验

  • 切记要在resources下创建目录processes,因为在配置文件里配置了扫描位置。

  • 以上就是自己搭建的过程,搭建中坑太多了,,,,,,,

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值