当前位置:   article > 正文

springboot集成flowable-ui最新版本_springboot集成flowableui

springboot集成flowableui

先下载源码

Release Flowable 6.7.2 release · flowable/flowable-engine · GitHub

 选择zip文件,下载,解压

然后进入E:\flowable-engine-flowable-6.7.2\flowable-engine-flowable-6.7.2\modules

然后这个flowable-ui的文件夹拷贝到一个你自己新建的workflow文件夹里面

然后再idea中导入项目


 

如果报这个错误

在pom中加入这一部分代码

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <scope>compile</scope>
</dependency>

如果报下面的错误,找到57行

spring-boot-starter-tomcat的scope 
provided改成compile

 

然后刷新maven 启动项目

浏览器输入http://localhost:8080/flowable-ui/

账号admin 密码test 

接下来,我们要吧flowable-ui集成到自己的springboot项目中

在pom文件添加这些数据

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.dmg</groupId>
  6. <artifactId>my-flowable-ui</artifactId>
  7. <!--这里一定要改成6.7.2 否则maven爆红-->
  8. <version>6.7.2</version>
  9. <name>my-flowable-ui</name>
  10. <description>Demo project for Spring Boot</description>
  11. <properties>
  12. <java.version>1.8</java.version>
  13. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  14. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  15. <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
  16. </properties>
  17. <parent>
  18. <groupId>org.flowable</groupId>
  19. <artifactId>flowable-ui-parent</artifactId>
  20. <version>6.7.2</version>
  21. </parent>
  22. <dependencies>
  23. <dependency>
  24. <groupId>org.flowable</groupId>
  25. <artifactId>flowable-spring-boot-starter-ui-task</artifactId>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.flowable</groupId>
  29. <artifactId>flowable-spring-boot-starter-ui-admin</artifactId>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.flowable</groupId>
  33. <artifactId>flowable-spring-boot-starter-ui-idm</artifactId>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.flowable</groupId>
  37. <artifactId>flowable-spring-boot-starter-ui-modeler</artifactId>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework.boot</groupId>
  41. <artifactId>spring-boot-starter-activemq</artifactId>
  42. </dependency>
  43. <dependency>
  44. <groupId>org.springframework.boot</groupId>
  45. <artifactId>spring-boot-starter-amqp</artifactId>
  46. </dependency>
  47. <dependency>
  48. <groupId>org.springframework.kafka</groupId>
  49. <artifactId>spring-kafka</artifactId>
  50. </dependency>
  51. <dependency>
  52. <groupId>org.springframework.boot</groupId>
  53. <artifactId>spring-boot-starter-oauth2-client</artifactId>
  54. </dependency>
  55. <dependency>
  56. <groupId>org.springframework.boot</groupId>
  57. <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
  58. </dependency>
  59. <dependency>
  60. <groupId>org.springframework.boot</groupId>
  61. <artifactId>spring-boot-starter-tomcat</artifactId>
  62. <scope>compile</scope>
  63. </dependency>
  64. <dependency>
  65. <groupId>org.springframework.boot</groupId>
  66. <artifactId>spring-boot-devtools</artifactId>
  67. <scope>provided</scope>
  68. </dependency>
  69. <dependency>
  70. <groupId>org.springframework.boot</groupId>
  71. <artifactId>spring-boot-starter-actuator</artifactId>
  72. </dependency>
  73. <dependency>
  74. <groupId>org.springframework.boot</groupId>
  75. <artifactId>spring-boot-configuration-processor</artifactId>
  76. <optional>true</optional>
  77. </dependency>
  78. <dependency>
  79. <groupId>org.springframework.boot</groupId>
  80. <artifactId>spring-boot-properties-migrator</artifactId>
  81. </dependency>
  82. <!-- DATABASE -->
  83. <dependency>
  84. <groupId>com.h2database</groupId>
  85. <artifactId>h2</artifactId>
  86. </dependency>
  87. <dependency>
  88. <groupId>org.postgresql</groupId>
  89. <artifactId>postgresql</artifactId>
  90. <scope>test</scope>
  91. </dependency>
  92. <dependency>
  93. <groupId>org.springframework.boot</groupId>
  94. <artifactId>spring-boot-starter-test</artifactId>
  95. <scope>test</scope>
  96. </dependency>
  97. <dependency>
  98. <groupId>net.javacrumbs.json-unit</groupId>
  99. <artifactId>json-unit-assertj</artifactId>
  100. <scope>test</scope>
  101. </dependency>
  102. <!-- LDAP dependencies needed for testing purposes -->
  103. <dependency>
  104. <groupId>org.springframework.ldap</groupId>
  105. <artifactId>spring-ldap-core</artifactId>
  106. <scope>test</scope>
  107. </dependency>
  108. <dependency>
  109. <groupId>com.unboundid</groupId>
  110. <artifactId>unboundid-ldapsdk</artifactId>
  111. <scope>test</scope>
  112. </dependency>
  113. <dependency>
  114. <groupId>javax.servlet</groupId>
  115. <artifactId>javax.servlet-api</artifactId>
  116. <scope>compile</scope>
  117. </dependency>
  118. <dependency>
  119. <groupId>mysql</groupId>
  120. <artifactId>mysql-connector-java</artifactId>
  121. <version>8.0.25</version>
  122. </dependency>
  123. </dependencies>
  124. </project>

然后把flowable-ui项目的flowable-default.properties文件拿过来

注释端口号,注释h2数据库,并且修改成mysql数据库

自己的数据库要先建一个flowable的名字

主要关注这部分的内容

 

 这是文件内容

  1. #server.port=8080
  2. server.servlet.context-path=/flowable-ui
  3. spring.jmx.unique-names=true
  4. # This is needed to force use of JDK proxies instead of using CGLIB
  5. spring.aop.proxy-target-class=false
  6. spring.aop.auto=false
  7. spring.application.name=flowable-ui
  8. spring.banner.location=classpath:/org/flowable/spring/boot/flowable-banner.txt
  9. # The default domain for generating ObjectNames must be specified. Otherwise when multiple Spring Boot applications start in the same servlet container
  10. # all would be created with the same name (com.zaxxer.hikari:name=dataSource,type=HikariDataSource) for example
  11. spring.jmx.default-domain=${spring.application.name}
  12. #
  13. # SECURITY
  14. #
  15. spring.security.filter.dispatcher-types=REQUEST,FORWARD,ASYNC
  16. # Expose all actuator endpoints to the web
  17. # They are exposed, but only authenticated users can see /info and /health abd users with access-admin can see the others
  18. management.endpoints.web.exposure.include=*
  19. # Full health details should only be displayed when a user is authorized
  20. management.endpoint.health.show-details=when_authorized
  21. # Only users with role access-admin can access full health details
  22. management.endpoint.health.roles=access-admin
  23. # Spring prefixes the roles with ROLE_. However, Flowable does not have that concept yet, so we need to override that with an empty string
  24. flowable.common.app.role-prefix=
  25. #
  26. # SECURITY OAuth2
  27. # Examples are for Keycloak
  28. #
  29. #spring.security.oauth2.resourceserver.jwt.issuer-uri=<keycloakLocation>/auth/realms/<realmName>
  30. #spring.security.oauth2.client.registration.keycloak.client-id=<clientId>
  31. #spring.security.oauth2.client.registration.keycloak.client-secret=<clientSecret>
  32. #spring.security.oauth2.client.registration.keycloak.client-name=Flowable UI Keycloak
  33. #spring.security.oauth2.client.registration.keycloak.authorization-grant-type=authorization_code
  34. #spring.security.oauth2.client.provider.keycloak.issuer-uri=<keycloakLocation>/auth/realms/<realmName>
  35. #spring.security.oauth2.client.provider.keycloak.user-name-attribute=preferred_username
  36. #flowable.common.app.security.type=oauth2
  37. #flowable.common.app.security.oauth2.authorities-attribute=groups
  38. #flowable.common.app.security.oauth2.groups-attribute=userGroups
  39. #flowable.common.app.security.oauth2.default-authorities=access-task
  40. #flowable.common.app.security.oauth2.default-groups=flowableUser
  41. #flowable.common.app.security.oauth2.full-name-attribute=name
  42. #flowable.common.app.security.oauth2.email-attribute=email
  43. #
  44. # DATABASE
  45. #
  46. #spring.datasource.driver-class-name=org.h2.Driver
  47. #spring.datasource.url=jdbc:h2:~/flowable-db/engine-db;AUTO_SERVER=TRUE;AUTO_SERVER_PORT=9093;DB_CLOSE_DELAY=-1
  48. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  49. spring.datasource.url=jdbc:mysql://localhost:3306/flowable?serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
  50. #spring.datasource.driver-class-name=org.postgresql.Driver
  51. #spring.datasource.url=jdbc:postgresql://localhost:5432/flowable
  52. #spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
  53. #spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=flowablea
  54. #spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
  55. #spring.datasource.url=jdbc:oracle:thin:@localhost:1521:FLOWABLE
  56. #spring.datasource.driver-class-name=com.ibm.db2.jcc.DB2Driver
  57. #spring.datasource.url=jdbc:db2://localhost:50000/flowable
  58. spring.datasource.username=root
  59. spring.datasource.password=123456
  60. # JNDI CONFIG
  61. # If uncommented, the datasource will be looked up using the configured JNDI name.
  62. # This will have preference over any datasource configuration done below that doesn't use JNDI
  63. #
  64. # Eg for JBoss: java:jboss/datasources/flowableDS
  65. #
  66. #spring.datasource.jndi-name==jdbc/flowableDS
  67. # Set whether the lookup occurs in a J2EE container, i.e. if the prefix "java:comp/env/" needs to be added if the JNDI
  68. # name doesn't already contain it. Default is "true".
  69. #datasource.jndi.resourceRef=true
  70. #
  71. # Connection pool (see https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby)
  72. #
  73. spring.datasource.hikari.poolName=${spring.application.name}
  74. # 10 minutes
  75. spring.datasource.hikari.maxLifetime=600000
  76. # 5 minutes
  77. spring.datasource.hikari.idleTimeout=300000
  78. spring.datasource.hikari.minimumIdle=10
  79. spring.datasource.hikari.maximumPoolSize=50
  80. # test query for H2, MySQL, PostgreSQL and Microsoft SQL Server
  81. #spring.datasource.hikari.connection-test-query=select 1
  82. # test query for Oracle
  83. #spring.datasource.hikari.connection-test-query=SELECT 1 FROM DUAL
  84. # test query for DB2
  85. #spring.datasource.hikari.connection-test-query=SELECT current date FROM sysibm.sysdummy1
  86. #
  87. # Default Task Executor (will be used for @Async)
  88. #
  89. spring.task.execution.pool.core-size=2
  90. spring.task.execution.pool.max-size=50
  91. spring.task.execution.pool.queue-capacity=10000
  92. spring.task.execution.thread-name-prefix=flowable-ui-task-Executor-
  93. #
  94. # Task scheduling
  95. #
  96. spring.task.scheduling.pool.size=5
  97. #
  98. # EMAIL
  99. #
  100. #flowable.mail.server.host=localhost
  101. #flowable.mail.server.port=1025
  102. #flowable.mail.server.username=
  103. #flowable.mail.server.password=
  104. #
  105. # FLOWABLE
  106. #
  107. flowable.process.definition-cache-limit=512
  108. #flowable.dmn.strict-mode=false
  109. flowable.process.async.executor.default-async-job-acquire-wait-time=PT5S
  110. flowable.process.async.executor.default-timer-job-acquire-wait-time=PT5S
  111. flowable.cmmn.async.executor.default-async-job-acquire-wait-time=PT5S
  112. flowable.cmmn.async.executor.default-timer-job-acquire-wait-time=PT5S
  113. # The maximum file upload limit. Set to -1 to set to 'no limit'. Expressed in bytes
  114. spring.servlet.multipart.max-file-size=10MB
  115. # The maximum request size limit. Set to -1 to set to 'no limit'.
  116. # When multiple files can be uploaded this needs to be more than the 'max-file-size'.
  117. spring.servlet.multipart.max-request-size=10MB
  118. # For development purposes, data folder is created inside the sources ./data folder
  119. flowable.content.storage.root-folder=data/
  120. flowable.content.storage.create-root=true
  121. flowable.common.app.idm-admin.user=admin
  122. flowable.common.app.idm-admin.password=test
  123. flowable.experimental.debugger.enabled=false
  124. # Rest API in task application
  125. # If false, disables the rest api in the task app
  126. flowable.task.app.rest-enabled=true
  127. # Configures the way user credentials are verified when doing a REST API call:
  128. # 'any-user' : the user needs to exist and the password need to match. Any user is allowed to do the call (this is the pre 6.3.0 behavior)
  129. # 'verify-privilege' : the user needs to exist, the password needs to match and the user needs to have the 'rest-api' privilege
  130. # If nothing set, defaults to 'verify-privilege'
  131. flowable.rest.app.authentication-mode=verify-privilege
  132. # Enable form field validation after form submission on the engine side
  133. flowable.form-field-validation-enabled=false
  134. # Flowable Admin Properties
  135. # Passwords for rest endpoints and master configs are stored encrypted in the database using AES/CBC/PKCS5PADDING
  136. # It needs a 128-bit initialization vector (http://en.wikipedia.org/wiki/Initialization_vector)
  137. # and a 128-bit secret key represented as 16 ascii characters below
  138. #
  139. # Do note that if these properties are changed after passwords have been saved, all existing passwords
  140. # will not be able to be decrypted and the password would need to be reset in the UI.
  141. flowable.admin.app.security.encryption.credentials-i-v-spec=j8kdO2hejA9lKmm6
  142. flowable.admin.app.security.encryption.credentials-secret-spec=9FGl73ngxcOoJvmL
  143. #flowable.admin.app.security.preemptive-basic-authentication=true
  144. # Flowable IDM Properties
  145. #
  146. # LDAP
  147. #
  148. #flowable.idm.ldap.enabled=true
  149. #flowable.idm.ldap.server=ldap://localhost
  150. #flowable.idm.ldap.port=10389
  151. #flowable.idm.ldap.user=uid=admin, ou=system
  152. #flowable.idm.ldap.password=secret
  153. #flowable.idm.ldap.base-dn=o=flowable
  154. #flowable.idm.ldap.query.user-by-id=(&(objectClass=inetOrgPerson)(uid={0}))
  155. #flowable.idm.ldap.query.user-by-full-name-like=(&(objectClass=inetOrgPerson)(|({0}=*{1}*)({2}=*{3}*)))
  156. #flowable.idm.ldap.query.all-users=(objectClass=inetOrgPerson)
  157. #flowable.idm.ldap.query.groups-for-user=(&(objectClass=groupOfUniqueNames)(uniqueMember={0}))
  158. #flowable.idm.ldap.query.all-groups=(objectClass=groupOfUniqueNames)
  159. #flowable.idm.ldap.query.group-by-id=(&(objectClass=groupOfUniqueNames)(uniqueId={0}))
  160. #flowable.idm.ldap.attribute.user-id=uid
  161. #flowable.idm.ldap.attribute.first-name=cn
  162. #flowable.idm.ldap.attribute.last-name=sn
  163. #flowable.idm.ldap.attribute.email=mail
  164. #flowable.idm.ldap.attribute.group-id=cn
  165. #flowable.idm.ldap.attribute.group-name=cn
  166. #flowable.idm.ldap.cache.group-size=10000
  167. #flowable.idm.ldap.cache.group-expiration=180000
  168. #
  169. # Keycloak
  170. #
  171. #flowable.idm.app.keycloak.enabled=true
  172. #flowable.idm.app.keycloak.server=<keycloakLocation>
  173. #flowable.idm.app.keycloak.authentication-realm=master
  174. #flowable.idm.app.keycloak.authentication-user=admin
  175. #flowable.idm.app.keycloak.authentication-password=admin
  176. #flowable.idm.app.keycloak.realm=<realm>
  177. #
  178. # DEFAULT ADMINISTRATOR ACCOUNT
  179. #
  180. flowable.idm.app.admin.user-id=admin
  181. flowable.idm.app.admin.password=test
  182. flowable.idm.app.admin.first-name=Test
  183. flowable.idm.app.admin.last-name=Administrator
  184. flowable.idm.app.admin.email=test-admin@example-domain.tld
  185. # Enable and configure JMS
  186. #flowable.task.app.jms-enabled=true
  187. #spring.activemq.broker-url=tcp://localhost:61616
  188. # Enable and configure RabbitMQ
  189. #flowable.task.app.rabbit-enabled=true
  190. #spring.rabbitmq.addresses=localhost:5672
  191. #spring.rabbitmq.username=guest
  192. #spring.rabbitmq.password=guest
  193. # Enable and configure Kafka
  194. #flowable.task.app.kafka-enabled=true
  195. #spring.kafka.bootstrap-servers=localhost:9092

然后新建一个目录,下面是我的目录,你可以改动

com.dmg.flowable.ui

然后把FlowableUiApplication和FlowableUiAppEventRegistryCondition

把放入com.dmg.flowable.ui目录下

  1. /* Licensed under the Apache License, Version 2.0 (the "License");
  2. * you may not use this file except in compliance with the License.
  3. * You may obtain a copy of the License at
  4. *
  5. * http://www.apache.org/licenses/LICENSE-2.0
  6. *
  7. * Unless required by applicable law or agreed to in writing, software
  8. * distributed under the License is distributed on an "AS IS" BASIS,
  9. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. * See the License for the specific language governing permissions and
  11. * limitations under the License.
  12. */
  13. package com.dmg.flowable.ui;
  14. import org.springframework.boot.SpringApplication;
  15. import org.springframework.boot.autoconfigure.SpringBootApplication;
  16. import org.springframework.boot.builder.SpringApplicationBuilder;
  17. import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
  18. import org.springframework.context.annotation.Configuration;
  19. public class FlowableUiApplication extends SpringBootServletInitializer {
  20. public static void main(String[] args) {
  21. SpringApplication.run(FlowableUiApplication.class, args);
  22. }
  23. @Override
  24. protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  25. return builder.sources(FlowableUiApplication.class);
  26. }
  27. }
  1. /* Licensed under the Apache License, Version 2.0 (the "License");
  2. * you may not use this file except in compliance with the License.
  3. * You may obtain a copy of the License at
  4. *
  5. * http://www.apache.org/licenses/LICENSE-2.0
  6. *
  7. * Unless required by applicable law or agreed to in writing, software
  8. * distributed under the License is distributed on an "AS IS" BASIS,
  9. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. * See the License for the specific language governing permissions and
  11. * limitations under the License.
  12. */
  13. package com.dmg.flowable.ui;
  14. import org.springframework.beans.BeansException;
  15. import org.springframework.beans.factory.BeanFactory;
  16. import org.springframework.beans.factory.BeanFactoryAware;
  17. import org.springframework.boot.autoconfigure.AutoConfigurationImportFilter;
  18. import org.springframework.boot.autoconfigure.AutoConfigurationMetadata;
  19. import org.springframework.boot.autoconfigure.condition.ConditionEvaluationReport;
  20. import org.springframework.boot.autoconfigure.condition.ConditionMessage;
  21. import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
  22. import org.springframework.boot.autoconfigure.condition.SpringBootCondition;
  23. import org.springframework.context.EnvironmentAware;
  24. import org.springframework.context.annotation.Condition;
  25. import org.springframework.context.annotation.ConditionContext;
  26. import org.springframework.core.env.Environment;
  27. import org.springframework.core.type.AnnotatedTypeMetadata;
  28. import java.util.HashMap;
  29. import java.util.Map;
  30. /**
  31. * @author Filip Hrisafov
  32. */
  33. public class FlowableUiAppEventRegistryCondition extends SpringBootCondition
  34. implements AutoConfigurationImportFilter, BeanFactoryAware, Condition, EnvironmentAware {
  35. // This is deliberately in the flowable-ui-task-app since it is only needed to enable / disable the dependency on the out of the box app
  36. // if the Task UI Spring Boot Starter is used then people need to add the appropriate Kafka, JMS or RabbitMQ for the event registry
  37. protected BeanFactory beanFactory;
  38. protected Environment environment;
  39. @Override
  40. public boolean[] match(String[] autoConfigurationClasses, AutoConfigurationMetadata autoConfigurationMetadata) {
  41. ConditionEvaluationReport report = ConditionEvaluationReport.find(this.beanFactory);
  42. Map<String, ConditionOutcome> conditions = getConditionOutcomes();
  43. ConditionOutcome[] outcomes = getOutcomes(autoConfigurationClasses, conditions);
  44. boolean[] match = new boolean[outcomes.length];
  45. for (int i = 0; i < outcomes.length; i++) {
  46. match[i] = (outcomes[i] == null || outcomes[i].isMatch());
  47. if (!match[i] && outcomes[i] != null) {
  48. logOutcome(autoConfigurationClasses[i], outcomes[i]);
  49. if (report != null) {
  50. report.recordConditionEvaluation(autoConfigurationClasses[i], this, outcomes[i]);
  51. }
  52. }
  53. }
  54. return match;
  55. }
  56. protected Map<String, ConditionOutcome> getConditionOutcomes() {
  57. boolean jmsEnabled = environment.getProperty("flowable.task.app.jms-enabled", Boolean.class, false);
  58. boolean kafkaEnabled = environment.getProperty("flowable.task.app.kafka-enabled", Boolean.class, false);
  59. boolean rabbitEnabled = environment.getProperty("flowable.task.app.rabbit-enabled", Boolean.class, false);
  60. Map<String, ConditionOutcome> conditions = new HashMap<>();
  61. if (!jmsEnabled) {
  62. conditions.put("org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration",
  63. ConditionOutcome.noMatch("Property flowable.task.app.jms-enabled was not set to true")
  64. );
  65. }
  66. if (!kafkaEnabled) {
  67. conditions.put("org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration",
  68. ConditionOutcome.noMatch("Property flowable.task.app.kafka-enabled was not set to true")
  69. );
  70. }
  71. if (!rabbitEnabled) {
  72. conditions.put("org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration",
  73. ConditionOutcome.noMatch("Property flowable.task.app.rabbit-enabled was not set to true")
  74. );
  75. }
  76. return conditions;
  77. }
  78. @Override
  79. public ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) {
  80. return ConditionOutcome.noMatch(ConditionMessage.empty());
  81. }
  82. protected ConditionOutcome[] getOutcomes(String[] autoConfigurationClasses, Map<String, ConditionOutcome> conditionOutcomes) {
  83. ConditionOutcome[] outcomes = new ConditionOutcome[autoConfigurationClasses.length];
  84. for (int i = 0; i < autoConfigurationClasses.length; i++) {
  85. outcomes[i] = conditionOutcomes.get(autoConfigurationClasses[i]);
  86. }
  87. return outcomes;
  88. }
  89. @Override
  90. public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
  91. this.beanFactory = beanFactory;
  92. }
  93. @Override
  94. public void setEnvironment(Environment environment) {
  95. this.environment = environment;
  96. }
  97. }

然后启动项目,在浏览器输入

http://localhost:8080/flowable-ui

账号admin 密码test 

就可以看到界面了

我们可以看下数据库,第一次会创建87张表

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/681154
推荐阅读
相关标签
  

闽ICP备14008679号