Camunda 实战练习:Demo搭建(四)

1.这次使用Camunda官方提供的网站创建Demo代码
首先打开Camunda 提供的demo地址:https://start.camunda.com/
详见下图:

这里Camunda 的版本我选择了 7.15.0 目前最高版本是 7.17.0;
java的版本 我也选用了 目前比较常用的 java 8
下面可以创建一个默认的用户:demo/demo
Camunda 实战练习:Demo搭建(四)_第1张图片
2.然后点击 这里的 GENERATE PROJECT 就会生成一个文件:
Camunda 实战练习:Demo搭建(四)_第2张图片
哦 对了你也可以该自己工程的名字:
Camunda 实战练习:Demo搭建(四)_第3张图片
重新点击GENERATE PROJECT

3.将你的代码移动到你的位置,然后解压,使用Idea打开你的项目,这个就不用多说了。
4.打开项目后,项目结构如下图所示:
Camunda 实战练习:Demo搭建(四)_第4张图片
5.我们首先来看看 他的pom文件里都引入了啥:

<dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.4.3</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>org.camunda.bpm</groupId>
        <artifactId>camunda-bom</artifactId>
        <version>7.15.0</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
    </dependencies>
  </dependencyManagement>

dependencyManagement
首先这里先是定义了Spring-boot 和 camunda 的版本号,分别是 2.4.3 和 7.15.0 ,这样做的好处是:在dependencyManagement元素中声明所依赖的jar包的版本号等信息,那么所有子项目再次引入此依赖jar包时则无需显式的列出版本号。Maven会沿着父子层级向上寻找拥有dependencyManagement 元素的项目,然后使用它指定的版本号。
这里应该是Maven dependencyManagement 的知识。
5.1 这里有一个小插曲,我说一下,就是我搭建camunda 的demo 与公司项目的脚手架整合的时候遇到一个问题,就是camunda 与 spring boot 版本兼容的问题。
下面是出自:
https://blog.csdn.net/Demi_nini/article/details/109517381(Camunda与Spring Boot集成(1)–版本兼容性)

Camunda 与Spring Boot Starter的每个版本都绑定到特定版本的Camunda BPM和Spring Boot。 Camunda仅建议(并支持)这些默认组合。 其他组合必须在生产前进行深入测试。
注意:
从7.13.0版开始,Camunda BPM及其兼容的Spring Boot Starter始终共享同一版本。 另外,Spring Boot Starter中使用的Camunda BPM版本不再需要被覆盖。 只需选择与您要使用的Camunda BPM版本类似的Starter版
所以这里可以理解为,camunda 与 Spring boot 是有对应关系的,如果不按照他的对应关系,可能会出问题。

我们自己公司的脚手架,当时引得spring-boot 的版本是 2.1.0.RELEASE, 远远低于 camunda 7.15.0 对应spring boot 版本号(),所以当时就出了一个问题,我经过分析发现,在项目类中引入 RepositoryService 会用到
camunda 引入的 spring boot 版本中少一个类,报错信息如下:
No qualifying bean of type ‘org.springframework.transaction.PlatformTransactionManager’ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
具体少哪个类 我忘了,但是我发现只要升级spring-boot 的版本号,就可以了,所以后来想办法升级了公司脚手架对应的版本号就解决了。好这个问题,暂时告一段落。
6.我们接着刚才的dependencyManagement 说。刚才看完了 dependencyManagement 现在我们来看一下:

<dependencies>
    <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
    </dependency>

    <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
    </dependency>

    <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine-plugin-spin</artifactId>
    </dependency>

    <dependency>
      <groupId>org.camunda.spin</groupId>
      <artifactId>camunda-spin-dataformat-all</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

  </dependencies>

7.由此可见,引入了 camunda 与 spring boot 整合的一些starter
接下来。我们可以直接启动项目(直接启动 Application 启动类即可):
Camunda 实战练习:Demo搭建(四)_第5张图片
表示启动成功,启动成功之后其实就可以访问camunda 为我们提供的后台管理系统的页面,在浏览器输入:http://localhost:8080 ,然后就会跳到:
http://localhost:8080/camunda/app/welcome/default/#!/login
Camunda 实战练习:Demo搭建(四)_第6张图片
8.然后输入刚才创建的默认账号:demo/demo

之后就进入这个页面,这个页面的功能介绍可以看这两篇:
https://blog.csdn.net/liuying1802028915/article/details/124589053
https://blog.csdn.net/liuying1802028915/article/details/124590895

这里其实用的是H2数据库,那我们能不能换成是mysql,数据库呢,答案自然是肯定的。首先我们要在本地创建一个camunda 的数据库,我们知道 camunda 默认有49张数据库的表,为什么有这么多表,可以看一下camunda的发展史,camunda 其实也算是 Activiti 的分支,当前 几个比较好用的工作流引擎的关系,其实也可以另起一篇文章,这里不再多说,大家可以搜搜别人的文章,比如:
Camunda/Flowable/Activiti技术发展史:https://blog.csdn.net/qq_30739519/article/details/86583765
开源流程引擎哪个好,如何选型?:https://zhuanlan.zhihu.com/p/369761832

好了这里回归正题,当时我再学习Activiti的时候,其实可以用一个代码生成自带的数据库的,但是camunda 不行(我应该是没找到正确的方法),后来也是借鉴了前人的经验:
可以看这篇:
Camunda Platform社区版 - 如何配置和使用mysql数据库【转载】:https://blog.csdn.net/luo15242208310/article/details/122382564
Camunda 实战练习:Demo搭建(四)_第7张图片

从这里可以看到,我们可以直接从camunda-bpm-run.7.15.0中找出对应的数据库的脚本.
camunda-bpm-run.7.15.0 怎么下载 大家可以去看我的这篇文章:
Camunda实战练习:Camunda 简单下载,安装,搭建(一):https://blog.csdn.net/liuying1802028915/article/details/124589053

Camunda 实战练习:Demo搭建(四)_第8张图片

9.我们找到了 这里的建表sql,因为我这里安装的是 camunda-bpm-run.7.17.0 的版本 7.15.0版本的方法,一样,所以这里拿出这两个sql文件直接运行:

Camunda 实战练习:Demo搭建(四)_第9张图片
如图所示就会生成响应的49张表,至于这49张表的介绍,网上一大推,这里不再赘述。好了,现在camunda 的数据库已经建好,接下来,就是修改配置:
修改前:
Camunda 实战练习:Demo搭建(四)_第10张图片
10 由此可见用的是H2的数据库,我们现在直接换成mysql的数据库:

spring:
  application:
    name: my-project
  jackson:
    #设置返回前端的参数为驼峰的转换形式
    property-naming-strategy: SNAKE_CASE
    #日期格式化
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  #数据源配置
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/camunda?serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: (这里是数据库的密码)

mybatis:
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

camunda:
  bpm:
    #配置账户密码来访问Camunda自带的管理界面
    admin-user:
      id: admin
      password: 11111111
      first-name: admin
    filter:
      create: All tasks
    #指定数据库类型
    database:
      type: mysql
      schema-update: true
    #禁止自动部署resources下面的bpmn文件
    auto-deployment-enabled: true
    #禁止index跳转到Camunda自带的管理界面,默认true
#    webapp:
#      index-redirect-enabled: false

11 然后启动项目,这里我们用了一个 用户 admin/11111111
之后的情形就一样了,接下来就可以使用这个demo项目进行camunda的开发了。

你可能感兴趣的:(Camunda,java,intellij-idea,spring,boot)