jfinal集成activiti5.19
jfinal集成activiti5.19
往事已成风 发表于2年前
jfinal集成activiti5.19
  • 发表于 2年前
  • 阅读 812
  • 收藏 5
  • 点赞 2
  • 评论 9
摘要: 最近研究了一下jfinal和activiti 并将其整合了一下,故记录下来

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

}

五、到此即可运行项目

共有 人打赏支持
粉丝 2
博文 3
码字总数 2905
评论 (9)
jack_ygy
这样无法停止流程引擎,最后TOMCAT超时
往事已成风

引用来自“jack_ygy”的评论

这样无法停止流程引擎,最后TOMCAT超时
activiti 提供了方法 ProcessEngines.destroy();//关闭流程引擎
OSCER

引用来自“jack_ygy”的评论

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

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

activiti 提供了方法 ProcessEngines.destroy();//关闭流程引擎
请问高手,你的activiti的事务是和jfinal整合在一起的吗,是同一事务管理的吗?
木易大虾
可以把代码发到我邮箱吗?969846219@qq.com
往事已成风

引用来自“jack_ygy”的评论

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

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

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

引用来自“OSCER”的评论

请问高手,你的activiti的事务是和jfinal整合在一起的吗,是同一事务管理的吗?
不是
往事已成风

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

可以把代码发到我邮箱吗?969846219@qq.com
所有的代码都在这里,复制就ok了
hotsmile
现在要用什么来处理事务?
往事已成风

引用来自“hotsmile”的评论

现在要用什么来处理事务?
mybatis所有的事务控制(开启、提交、回滚、关闭)的最终落点都在Executor中 ,所以可以考虑将其放入jfinal的事务aop中一起执行。
熊猫你好
大神,你有这个插件的使用实例吗?让我看一下把:sob:
×
往事已成风
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: