文档章节

jfinal集成activiti5.19

往事已成风
 往事已成风
发布于 2016/04/19 14:40
字数 372
阅读 1427
收藏 8

一、搭建好jfinal工程项目,或者直接从jfinal官网下载最新版本demo

二、导入activiti-5.19相关架包(spring相关架包除外)

三、将activiti引擎写成jfinal插件的形式

  1. 创建插件类ActivitiPlugins实现IPlugin接口

  2. 实现相关方法

  代码如下:


import org.activiti.engine.ProcessEngine;

import org.activiti.engine.ProcessEngineConfiguration;

import org.activiti.engine.ProcessEngines;


import com.jfinal.plugin.IPlugin;

import com.jfinal.plugin.activerecord.IDataSourceProvider;


public class ActivitiPlugins implements IPlugin {


@Override

public boolean start() {

// TODO Auto-generated method stub

if (isStarted) {

return true;

}

processEngineConfiguration = ProcessEngineConfiguration

.createStandaloneProcessEngineConfiguration()

.setDatabaseType("mysql")

.setDataSource(this.dataSourceProvider.getDataSource())

.setTransactionsExternallyManaged(true) // 使用托管事务工厂

.setDatabaseSchemaUpdate(

ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);// 数据库中没有表则创建表

// .buildProcessEngine();//开启流程引擎

// processEngine.getRepositoryService();

// configuration

System.out.println("流程引擎111:" + buildProcessEngine());

// System.out.println("流程部署服务:"+processEngine.getRepositoryService());

isStarted = true;

// ProcessEngines.init();//开启流程引擎

System.out.println("启动流程引擎.......");

return isStarted;

}


@Override

public boolean stop() {

// TODO Auto-generated method stub

ProcessEngines.destroy();// 关闭流程引擎

isStarted = false;

return true;

}


// 开启流程服务引擎

public static ProcessEngine buildProcessEngine() {

if (processEngine == null)

if (processEngineConfiguration != null) {

processEngine = processEngineConfiguration.buildProcessEngine();

}

return processEngine;

}


private static ProcessEngine processEngine = null;


private static ProcessEngineConfiguration processEngineConfiguration = null;

// 基本属性 url、user、password

private IDataSourceProvider dataSourceProvider = null;


private boolean isStarted = false;


public ActivitiPlugins(IDataSourceProvider dataSourceProvider) {

this.dataSourceProvider = dataSourceProvider;

}


// get/set方法


public IDataSourceProvider getDataSourceProvider() {

return dataSourceProvider;

}


public void setDataSourceProvider(IDataSourceProvider dataSourceProvider) {

this.dataSourceProvider = dataSourceProvider;

}


}

四、将编写的插件放到jfinal插件集中运行

代码如下:

/**

* 自定义插件

*/

@Override

protected void plugin(Plugins plugins) {

// 添加数据源

Prop p = PropKit.use("default/jdbc.config");

final String url = PropKit.get("activiti_url");

final String username = PropKit.get("activiti_user");

final String password = PropKit.get("activiti_pwd");

DruidPlugin druidPlugin = new DruidPlugin(url, username, password);

plugins.add(druidPlugin);

        //activiti 配置

        ActivitiPlugins activitiPlugins = new ActivitiPlugins(druidPlugin);   

        plugins.add(activitiPlugins);

}

五、到此即可运行项目

© 著作权归作者所有

共有 人打赏支持
往事已成风
粉丝 1
博文 3
码字总数 2905
作品 0
深圳
程序员
私信 提问
加载中

评论(9)

熊猫你好
熊猫你好
大神,你有这个插件的使用实例吗?让我看一下把😭
往事已成风
往事已成风

引用来自“hotsmile”的评论

现在要用什么来处理事务?
mybatis所有的事务控制(开启、提交、回滚、关闭)的最终落点都在Executor中 ,所以可以考虑将其放入jfinal的事务aop中一起执行。
hotsmile
hotsmile
现在要用什么来处理事务?
往事已成风
往事已成风

引用来自“木易大虾”的评论

可以把代码发到我邮箱吗?969846219@qq.com
所有的代码都在这里,复制就ok了
往事已成风
往事已成风

引用来自“jack_ygy”的评论

这样无法停止流程引擎,最后TOMCAT超时

引用来自“往事已成风”的评论

activiti 提供了方法 ProcessEngines.destroy();//关闭流程引擎

引用来自“OSCER”的评论

请问高手,你的activiti的事务是和jfinal整合在一起的吗,是同一事务管理的吗?
不是
木易大虾
木易大虾
可以把代码发到我邮箱吗?969846219@qq.com
O
OSCER

引用来自“jack_ygy”的评论

这样无法停止流程引擎,最后TOMCAT超时

引用来自“往事已成风”的评论

activiti 提供了方法 ProcessEngines.destroy();//关闭流程引擎
请问高手,你的activiti的事务是和jfinal整合在一起的吗,是同一事务管理的吗?
往事已成风
往事已成风

引用来自“jack_ygy”的评论

这样无法停止流程引擎,最后TOMCAT超时
activiti 提供了方法 ProcessEngines.destroy();//关闭流程引擎
jack_ygy
jack_ygy
这样无法停止流程引擎,最后TOMCAT超时
JFinal单元测试,发现和MockMVC不太一样,没有断言等方法

最近公司在推行单元测试规范,项目中用到了JFinal、SpringMVC等框架,SpringMVC中集成的MockMVC可以断言不用通过执行 System.out.println 来查看测试结果。 JFinal单元测试参照了以下文章: ...

zhulint
2017/10/25
74
0
Jfinal集成Spring插件

最近公司使用Jfinal开发项目,不知道什么原因Jfinal和其他的几个插件集成的时候,事物管理并不那么随心,所以就选择了Spring作为Jfinal的插件来管理事物.废话不多说,直接上代码. IocKit.java S...

方宏春
2018/09/14
0
0
JFinal Extensions 1.0 发布,JFinal 扩展

Jfinal-ext是对java极速web框架 jfinal 的一个扩充,主要利用jfinal的plugin机制集成各种第三方框架,像spring一样,简化开发者的学习应用成本,使用时请将jfinal.jar先引入工程。 Jfinal-e...

绝望的八皮
2012/10/14
1K
13
OSC上关于Jfinal的提问整理(二)

1.【问】:Db.tx(new IAtom())事务不起作用? 【jfinal答】:1:如果使用的mysql,确保引擎为 InnoDB 2:这行代码改一下Db.save(c3p0Plugin.getDataSource(), "tbtest", "PKID", record);去掉......

木川瓦兹
2013/04/25
0
2
能告我一下JFinal怎么集成JBPM么

@JFinal 你好,想跟你请教个问题: 您好!您以前发过一个jfinal集成jbpm的帖子,能告我一下JFinal怎么集成JBPM么,谢谢您

AK180
2017/09/08
165
4

没有更多内容

加载失败,请刷新页面

加载更多

乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxprobe16
34分钟前
1
0
OSChina 周日乱弹 —— 没时间 没头发 但有钱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @开源中国总经办主任 :分享齐一的单曲《这个年纪》 《这个年纪》- 齐一 手机党少年们想听歌,请使劲儿戳(这里) @肿肿卷 :我真的可以睡一天...

小小编辑
今天
45
4
Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
3
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部