springboot2.3.3 整合 activiti6 创建基本表

MybatisPlus+Activiti6冲突导致mybatis plus包引入失败
解决办法:将activiti中排除掉
<dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>6.0.0</version> <exclusions> <exclusion> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </exclusion> </exclusions> </dependency>

首先,官网说了,想要自动创建表需要配置:

spring:
  activiti:
    database-schema-update: true

 

但是,启动项目后,并未自动创建表,经查找网上资料得知:

在使用mysql-connect 8.+以上版本的时候需要添加nullCatalogMeansCurrent=true参数,否则在使用mybatis-generator生成表对应的xml等时会扫描整个服务器里面的全部数据库中的表,而不是扫描对应数据库的表。-https://www.jianshu.com/p/8d23f7483297

然后查看自己项目中的 mysql.version 版本,发现

<mysql.version>8.0.16</mysql.version>

所以修改数据库连接配置: 加上【nullCatalogMeansCurrent=true

datasource:
    url: jdbc:mysql://localhost:3306/activiti?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&autoReconnect=true&nullCatalogMeansCurrent=true
   

启动类上添加

@SpringBootApplication
@EnableAutoConfiguration(exclude = {org.activiti.spring.boot.SecurityAutoConfiguration.class,
        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class })

随便创建一个bpmn文件,然后启动  就可以生成表结构了

nested exception is java.io.FileNotFoundException: class path resource [processes/] cannot be resolved to URL because it does not exist。

解决方法(设置项目启动时不用检查流程文件)

(1)在resources下新建processes文件夹,将bpmn、bpmn.xml或bpmn20.xml(随便一个可行的流程图文件)放入其中即可。

 

(2)在application.yml中加 spring.activiti.check-process-definitions: false (注意false前有空格)。或者在application.properties中加spring.activiti.check-process-definitions=false

posted @ 2020-08-16 20:53  散落人间  阅读(1301)  评论(0编辑  收藏  举报
interface food{} class A implements food{} class B implements food{} class C implements food{} public class StaticFactory { private StaticFactory(){} public static food getA(){ return new A(); } public static food getB(){ return new B(); } public static food getC(){ return new C(); } } class Client{ //客户端代码只需要将相应的参数传入即可得到对象 //用户不需要了解工厂类内部的逻辑。 public void get(String name){ food x = null ; if ( name.equals("A")) { x = StaticFactory.getA(); }else if ( name.equals("B")){ x = StaticFactory.getB(); }else { x = StaticFactory.getC(); } } }