springboot1.5.7 集成Uflo2.1.4

近期在研究工作流引擎,上一篇关于工作流引擎的是flowable-engine。环境弄好之后发现流程编辑实在是太复杂,于是找一个国内的Uflo再试试。感觉界面操作上没有那么复杂,比较清晰。只不过是使用的人不太多,遇到的一些问题在找不到。经过不断摸索和尝试终于搭建完成,闲言少叙,书归正文。按照官方的文档进行配置http://wiki.bsdn.org/pages/viewpage.action?pageId=30441805。但官方提供的是sping MVC的配置方法,我的系统使用的是springboot1.5.7。又不想用视频中的context.xml文件进行配置,于是开始研究在springboot1.5.7下集成Uflo2.1.4。

1、pom.xml

按照官方文档介绍只需要引入一个依赖就可以:uflo-console

<dependency>
     <groupId>com.bstek.uflo</groupId>
     <artifactId>uflo-console</artifactId>
     <version>2.1.4</version>
</dependency>

 

2、配置启动类Application.java

导入uflo的配置文件

@ImportResource(locations = {"classpath:uflo-console-context.xml"})

扫描uflo中的所有entity

Application中添加@EntityScan,扫描所有的entity。

@EntityScan({
    "com.bstek.uflo.model"
})

3、配置application.yml

添加current_session_context_class配置,主要是为了找到Hibernate的sessionFactory。在application.yml文件中找到spring.jpa.properties.hibernate节点下面添加。找好三个属性的路径,千万别配错了

current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
dialect: org.hibernate.dialect.MySQL5Dialect
ddl-auto: update

4、最关键的sessionFactory和transaction的配置

4.1、添加UfloConfig.java类(名称自定义,没有要求)

与Application.java文件同级包下添加Uflo.java类,实现注册sessionfactory和transaction的配置,要实现TransactionManagementConfigurer类,返回JpaTransactionManager,这个是引入了spring-boot-starter-data-jpa默认的事务处理类。

代码如下:

import org.hibernate.SessionFactory;
import org.hibernate.jpa.HibernateEntityManagerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.TransactionManagementConfigurer;

import javax.persistence.EntityManagerFactory;

@Configuration
@EnableTransactionManagement
public class UfloConfig implements TransactionManagementConfigurer {

    @Autowired
    private EntityManagerFactory entityManagerFactory;

    @Override
    public PlatformTransactionManager annotationDrivenTransactionManager() {
        return new JpaTransactionManager(entityManagerFactory);
    }

    @Bean
    public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf) {
        return hemf.getSessionFactory();
    }
}

4.2、实现Uflo的EnvironmentProvider类

这是Uflo要求必须实现的一个类,主要目的应该是为了获取SessionFactory、Transaction、user和category。

直接上代码:

import com.bstek.uflo.env.EnvironmentProvider;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;

import javax.persistence.EntityManagerFactory;

@Configuration
public class EnvironmentProviderImpl implements EnvironmentProvider {

    @Autowired
    private SessionFactory sessionFactory;

    @Autowired
    private EntityManagerFactory entityManagerFactory;

    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public PlatformTransactionManager getPlatformTransactionManager() {
        return new JpaTransactionManager(entityManagerFactory);
    }

    public String getCategoryId() {
        return null;
    }
    public String getLoginUser() {
        return "anonymous";
    }
}

5、配置UfloServlet

springboot配置servlet百度一大把,详见代码:

import com.bstek.uflo.console.UfloServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ServletConfig {

    @Bean
    public ServletRegistrationBean servletRegistration() {
        return new ServletRegistrationBean(new UfloServlet(), "/uflo/*");
    }
}

以上配置完成,启动Application。并在浏览器输入http://localhost:8080/uflo/designer

uflo设计器

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值