上一篇文章《实战项目之使用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看下效果。
还没有评论,来说两句吧...