Springboot2.0.4集成SnakerFlow2.4.0版本(mybaits实现)

SnakerFlow是一款类似于Activiti和BPMN的流程引擎,2014年已停更了,但并不影响使用。建议使用2.4.0版本别问我为什么,可以分别看看他们的源码就明白了。

最近公司需要使用该流程插件,所以就去研究了一下

首先在pom文件中引入Snaker的三个主要的依赖还有一个定时任务的依赖根据需求加

<dependency>
            <groupId>com.github.snakerflow</groupId>
            <artifactId>snaker-core</artifactId>
            <version>2.4.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.github.snakerflow</groupId>
            <artifactId>snaker-spring</artifactId>
            <version>2.4.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.github.snakerflow</groupId>
            <artifactId>snaker-mybatis</artifactId>
            <version>2.4.0</version>
        </dependency>

接下来就是配置Snaker自定义一个配置文件application-snakerflow.xml

配置如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
        default-autowire="byName" default-lazy-init="true">

    <context:component-scan base-package="org.snaker.engine"/>

    <bean id="engine" class="org.snaker.engine.spring.SpringSnakerEngine">
        <property name="processService" ref="processService"/>
        <property name="orderService" ref="orderService"/>
        <property name="taskService" ref="taskService"/>
        <property name="queryService" ref="queryService"/>
        <property name="managerService" ref="managerService"/>
    </bean>



    <bean id="dbAccess" class="org.snaker.engine.access.mybatis.MybatisAccess">
        <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
### Spring Boot 2.0.4 集成 MyBatis 使用指南和配置示例 在 Spring Boot 2.0.4集成 MyBatis,可以通过 MyBatis-Spring 提供的工具来实现。以下是详细的使用指南和配置示例。 #### 1. 添加依赖 首先,在项目的 `pom.xml` 文件中添加必要的依赖项。Spring Boot 2.0.4 支持 MyBatis 的集成,因此需要引入 MyBatis 和 MySQL 的相关依赖。 ```xml <dependencies> <!-- Spring Boot Starter for MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- Spring Boot Starter JDBC --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> </dependencies> ``` #### 2. 配置数据库连接 在 `application.properties` 文件中配置数据库连接信息以及 MyBatis 的相关属性。 ```properties # 数据库连接配置 spring.datasource.url=jdbc:mysql://localhost:3306/mytestdb?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # MyBatis 配置 mybatis.type-aliases-package=com.example.demo.entity mybatis.mapper-locations=classpath:mapper/*.xml mybatis.configuration.map-underscore-to-camel-case=true ``` 上述配置中: - `spring.datasource.url` 是数据库连接字符串[^3]。 - `spring.datasource.username` 和 `spring.datasource.password` 分别是数据库用户名和密码。 - `mybatis.type-aliases-package` 指定了实体类所在的包路径[^3]。 - `mybatis.mapper-locations` 指定了 Mapper XML 文件的位置[^3]。 - `mybatis.configuration.map-underscore-to-camel-case=true` 开启了下划线到驼峰命名的自动转换。 #### 3. 配置 MapperScan 在主应用程序类上添加 `@MapperScan` 注解以指定 MyBatis Mapper 接口所在的包路径。 ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import tk.mybatis.spring.annotation.MapperScan; @SpringBootApplication @MapperScan(basePackages = "com.example.demo.mapper") // 指定 Mapper 接口所在的包路径 public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 上述代码中,`@MapperScan(basePackages = "com.example.demo.mapper")` 指定了 Mapper 接口所在的包路径[^2]。 #### 4. 创建 Mapper 接口 创建一个 MyBatis Mapper 接口,并使用注解或 XML 文件定义 SQL 查询。 ```java import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; @Repository public interface UserMapper { @Select("SELECT * FROM user WHERE id = #{id}") User findById(int id); } ``` 如果使用 XML 文件定义 SQL 查询,则需要在 `resources/mapper` 目录下创建对应的 XML 文件。 ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.mapper.UserMapper"> <select id="findById" resultType="com.example.demo.entity.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` #### 5. 测试集成 编写一个简单的测试用例来验证 MyBatis 是否成功集成。 ```java import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class UserMapperTest { @Autowired private UserMapper userMapper; @Test public void testFindById() { User user = userMapper.findById(1); System.out.println(user); } } ``` 通过运行测试用例,确保 MyBatis 能够正确查询数据库中的数据。 --- ### 注意事项 - 确保 MySQL 驱动版本与 Spring Boot 版本兼容。对于 Spring Boot 2.0.4,推荐使用 MySQL 8.0 的驱动 `com.mysql.cj.jdbc.Driver`。 - 如果使用的是其他数据库(如 PostgreSQL 或 Oracle),需要根据实际情况调整驱动和连接字符串。 ---
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值