当前位置: 首页 > news >正文

(一)springboot2.7.6集成activit5.23.0之集成引擎

集成引擎很简单。

首先是创建springboot项目然后引入相关依赖就完成了。pom.xml如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>xpl.study.activiti</groupId><artifactId>study-activiti</artifactId><version>1.0</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.6</version></parent><properties><activiti.version>5.23.0</activiti.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter-basic</artifactId><version>${activiti.version}</version></dependency>        <dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

然后,对应的StudyActivitiApplication.java

package xpl.study.activiti;import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;@SpringBootApplication(exclude = { org.activiti.spring.boot.SecurityAutoConfiguration.class,org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class })
public class StudyActivitiApplication {public static void main(String[] args) {SpringApplication.run(StudyActivitiApplication.class, args);}@Beanpublic CommandLineRunner init(final RepositoryService repositoryService, final RuntimeService runtimeService,final TaskService taskService) {return new CommandLineRunner() {@Overridepublic void run(String... strings) throws Exception {System.out.println("Number of process definitions : " + repositoryService.createProcessDefinitionQuery().count());System.out.println("Number of tasks : " + taskService.createTaskQuery().count());
//				runtimeService.startProcessInstanceByKey("oneTaskProcess");
//				System.out.println("Number of tasks after process start: " + taskService.createTaskQuery().count());}};}
}

最后,运行结果:

注意:

1.解决SecurityAutoConfiguration和SecurityAutoConfiguration安全检查。
解决方案是移除security安全校验方法为修改Application启动类。具体就是如下注解:

@SpringBootApplication(exclude = { org.activiti.spring.boot.SecurityAutoConfiguration.class,org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class })
.   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::                (v2.7.6)2024-08-02 20:55:53.650  INFO 22744 --- [           main] x.s.activiti.StudyActivitiApplication    : Starting StudyActivitiApplication using Java 1.8.0_201 on XPL with PID 22744 (F:\workspace\maven\study-activiti\target\classes started by Administrator in F:\workspace\maven\study-activiti)
2024-08-02 20:55:53.653  INFO 22744 --- [           main] x.s.activiti.StudyActivitiApplication    : No active profile set, falling back to 1 default profile: "default"
2024-08-02 20:55:54.057 ERROR 22744 --- [           main] o.s.boot.SpringApplication               : Application run failedjava.lang.IllegalArgumentException: Could not find class [org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration]at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:334) ~[spring-core-5.3.24.jar:5.3.24]at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:474) ~[spring-core-5.3.24.jar:5.3.24]at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:397) ~[spring-core-5.3.24.jar:5.3.24]at org.springframework.core.annotation.TypeMappedAnnotation.asMap(TypeMappedAnnotation.java:283) ~[spring-core-5.3.24.jar:5.3.24]at org.springframework.core.annotation.AbstractMergedAnnotation.asAnnotationAttributes(AbstractMergedAnnotation.java:193) ~[spring-core-5.3.24.jar:5.3.24]at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes(AnnotatedTypeMetadata.java:106) ~[spring-core-5.3.24.jar:5.3.24]at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes(AnnotatedTypeMetadata.java:81) ~[spring-core-5.3.24.jar:5.3.24]at org.springframework.context.annotation.AnnotationConfigUtils.attributesFor(AnnotationConfigUtils.java:285) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.annotation.AnnotationBeanNameGenerator.determineBeanNameFromAnnotation(AnnotationBeanNameGenerator.java:103) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.annotation.AnnotationBeanNameGenerator.generateBeanName(AnnotationBeanNameGenerator.java:82) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.registerBeanDefinitionForImportedConfigurationClass(ConfigurationClassBeanDefinitionReader.java:169) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:150) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:343) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.24.jar:5.3.24]at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) [spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) [spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) [spring-boot-2.7.6.jar:2.7.6]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) [spring-boot-2.7.6.jar:2.7.6]at xpl.study.activiti.StudyActivitiApplication.main(StudyActivitiApplication.java:15) [classes/:na]
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.autoconfigure.security.SecurityAutoConfigurationat java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_201]at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_201]at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_201]at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_201]at java.lang.Class.forName0(Native Method) ~[na:1.8.0_201]at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_201]at org.springframework.util.ClassUtils.forName(ClassUtils.java:284) ~[spring-core-5.3.24.jar:5.3.24]at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:324) ~[spring-core-5.3.24.jar:5.3.24]... 25 common frames omitted

2.为了方便测试,简化配置文件,引入h2数据库驱动的依赖。

3.init方法只是为了测试,不是集成activiti引擎必要的代码。

至此,springboot与activiti的集成就完成了。非常简单,只要2个文件:pom.xml和StudyActivitiApplication.java就可以编译运行了。

相关文章:

  • 【文件fd】深入理解重定向和缓冲区
  • python-局部求和(赛氪OJ)
  • 2024年有什么赚钱的副业推荐半年还清贷款,成功变现12.3w的全套玩法都放这里了!!!
  • linux用户组练习
  • FastAPI之Depends
  • Scrapy 爬取旅游景点相关数据(五)
  • 【LLM】-14-搭建问答系统
  • 天气曲线echarts
  • PHP常用函数
  • Opencv学习-LUT函数
  • 人工智能未来展望
  • 基于域名的虚拟主机、多虚拟主机的配置、基于ip的虚拟主机及上线静态的前端系统(商城系统)
  • jenkins服务器重启,构建记录消失
  • 结构型设计模式:适配器/代理
  • Qt——QTCreater ui界面如何统一设置字体
  • __proto__ 和 prototype的关系
  • 【RocksDB】TransactionDB源码分析
  • Angular 2 DI - IoC DI - 1
  • Angular数据绑定机制
  • axios 和 cookie 的那些事
  • CentOS7 安装JDK
  • CentOS7简单部署NFS
  • extjs4学习之配置
  • JavaScript HTML DOM
  • javascript 总结(常用工具类的封装)
  • Laravel 中的一个后期静态绑定
  • MYSQL 的 IF 函数
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 创建一种深思熟虑的文化
  • 番外篇1:在Windows环境下安装JDK
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 警报:线上事故之CountDownLatch的威力
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 为什么要用IPython/Jupyter?
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​比特币大跌的 2 个原因
  • #07【面试问题整理】嵌入式软件工程师
  • #QT(一种朴素的计算器实现方法)
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $refs 、$nextTic、动态组件、name的使用
  • ( 10 )MySQL中的外键
  • (6)STL算法之转换
  • (九)信息融合方式简介
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (五)网络优化与超参数选择--九五小庞
  • (原创)可支持最大高度的NestedScrollView
  • (转)c++ std::pair 与 std::make
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法