上一篇文章《实战项目之使用LiteFlow编写一个流程引擎(二)》我们介绍了整个业务背景,同时也画了一个图展示整个的流程逻辑。这篇文章我们来创建一下相关的项目。这里的案例我们使用springboot的方式给大家演示,同时配置文件使用本地配置文件存储。
一、创建一个maven项目,并且引入依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.yomahub</groupId> <artifactId>liteflow-spring-boot-starter</artifactId> <version>2.9.6</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.14.8</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.83</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.1.Final</version> </dependency> </dependencies>
二、创建application.yml,内容如下:
# spring spring: # profiles profiles: active: dev liteflow: rule-source: config/flow.el.xml
上面的liteflow.rule-source=config/flow.el.xml是liteflow的相关配置文件的地方,这个配置是必须的,千万别忘记了。
三、创建logback-spring.xml,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<property name="LOG_HOME" value="./logs"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
</appender>
<appender name="CORE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/core.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>60</MaxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>
<charset>utf8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
</filter>
</appender>
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/error.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>60</MaxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>
<charset>utf8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<root level="INFO" additivity="false">
<!-- <springProfile name="dev">-->
<!-- <appender-ref ref="STDOUT"/>-->
<!-- </springProfile>-->
<!-- <springProfile name="local">-->
<!-- <appender-ref ref="STDOUT"/>-->
<!-- </springProfile>-->
<appender-ref ref="STDOUT"/>
<appender-ref ref="CORE_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</configuration>四、创建Application.java
package com.school.admission;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}五、创建StudentController.java
package com.school.admission.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.school.admission.context.AdmissionContext;
import com.school.admission.model.AdmissionResult;
import com.school.admission.model.BaseResponse;
import com.school.admission.model.StudentPoJO;
import com.yomahub.liteflow.core.FlowExecutor;
import com.yomahub.liteflow.flow.LiteflowResponse;
@RestController
public class StudentController {
@RequestMapping("/admiss")
public String admission() {
return "hello";
}
}以上我们一个基础的springboot项目就创建好了,运行起来,请求http://127.0.0.1:8080/admin看下效果。

还没有评论,来说两句吧...