文档章节

jfinal集成activiti5.19

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

一、搭建好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)

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

引用来自“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极速开发实战教程新鲜出炉~

JFinal极速开发实战教程新鲜出炉~ [持续更新中...] JFinal框架让 IT 工程师发挥更大的潜能,实现更大价值,同时也希望 JFinal 工具力量能帮助正在创业的朋友们提升效率、降低成本从而实现创业...

山东-小木
2015/01/07
0
13
Jfinal集成Spring插件

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

方宏春
09/14
0
0
OSC上关于Jfinal的提问整理(二)

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

木川瓦兹
2013/04/25
0
2
JFinal2.0开启Server后启动其他插件

最近同事在搞JFinal动态添加数据源配置,多亏了JFinal2.0的出现,才很方便的解决了这个问题。 我看他代码时,无意中发现插件还需要调用start()方法,于是就思考在总配置类里面配置插件之后是...

夜辰
2015/07/04
0
0
jfinal-admin 3.3 发布,Bug 修复更新

jfinal-admin 3.3 版本正式发布啦。该版本主要进行了一些 Bug 修复,主要更新内容如下: 1、登录加密算法更新,修复DES秘钥初始化的bug; 2、任务管理模块更新,修复任务调度配置时执行类参数...

IT小香猪
07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
3
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部