文档章节

jfinal集成activiti5.19

往事已成风
 往事已成风
发布于 2016/04/19 14:40
字数 372
阅读 1186
收藏 7
点赞 2
评论 9

一、搭建好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
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-admin 3.3 发布,Bug 修复更新

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

IT小香猪
07/13
0
0
JFinal2.0开启Server后启动其他插件

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

夜辰
2015/07/04
0
0
JFinal 中使用 Dubbo —— 1 改造JFinal Demo

Dubbo Demo概述 此Demo实际在2014年上半年就已经完成了,只是到最近才有时间和心情写完此文。同时,将JFinal升级到了1.9,并采用Maven构建项目。 另外,仔细想了想,Provider其实可以不依托T...

糊搞
2015/04/20
0
16
OSC上关于Jfinal的提问整理(一)

看见Jfinal很火,就手痒痒了,想学一下,无奈入门较慢,没有找到比较全的文档。于是就经常看讨论区大家的提问与解答。后来就忽然萌生了整理下来的想法。其中的问题如果是@Jfinal 回答的,那我...

木川瓦兹
2013/04/23
0
21
JFinal 3.4 发布,将极速贯彻到 UI 层

jfinal 的终极目标是全面实现软件开发整个过程的极速开发,极大提升开发效率,极大降低学习成本,极大提升开发体验 jfinal 诞生头五年,已实现 WEB + ORM + AOP 层面的极速开发,赢得了大量开...

JFinal
04/28
0
129
JFinal-Beetl-Shiro(JdbcRealm)-例子

JFinal-Shiro-JDBC-Demo http://git.oschina.net/yinjun622/JFinal-Shiro-JDBC-Demo 简单实现@JFinal与Shiro整合例子 1、工程通过Eclipse直接导入,部署到tomcat中; 2、新建jfinalshiro数据......

leon_rock
2014/02/27
0
12
jfinal-admin 3.2 发布,beetl 模板升级到 2.7.14

jfinal-admin 3.2 版本正式发布啦。 基于JFinal的后台管理系统,采用了简洁强大的JFinal作为web框架,模板引擎用的是beetl,数据库用mysql,前端bootstrap框架。 演示地址 http://jad.yxyun...

IT小香猪
04/19
0
0
JFinal针对ORACLE的timestamp字段解决办法

JFinal是个比较不错的的框架,但JFinal起源时使用mysql数据库,因此在对数据库支持方面还没有达到完美。 本人使用JFinal有一段时间的,由于项目的数据库普遍采用oracle,在使用oracle过程中遇...

真的农夫三拳
2013/06/23
0
6

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模板模式 Spring5 beans 接口实例化 代理Bean操作 ...

小致dad
16分钟前
0
0
SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
9
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
12
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
203
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部