努力保头发的打工人
努力保头发的打工人
发布于 2024-07-27 / 1 阅读 / 0 评论 / 0 点赞

SpringBoot集成urule-pro规则引擎

1. 引入依赖

        <!-- https://mvnrepository.com/artifact/com.bstek.urule/urule-console-pro -->
        <dependency>
            <groupId>com.bstek.urule</groupId>
            <artifactId>urule-console-pro</artifactId>
            <version>4.2.5</version>
        </dependency>

2. 修改配置

第一次启动需要在classpath下添加一个urule-init.properties文件,里面指定生成配置文件的地址:

urule.home=E:/ToolIdea/uruleHome

第一次访问项目需要配置好admin账号和数据库信息,会自动创建表。

如果使用以下表结构可以跳过上述配置文件添加,直接使用下面的配置文件

表结构:urule.sql

参考官网地址:2.1.3. 基于Spring-Boot · GitBook

urule:
  repository:
    dir:
  config:
    type: jdbc
  store:
    database:
      driver: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://192.168.7.248:3306/urule?useUnicode=true&characterEncoding=UTF-8&useSSL=false
      username: root
      password: 123456
      platform: mysql
      minIdle: 0
      maxIdle: 10
      initialsize: 0
      maxTotal: 10
      validationQuery: select 1

urule有循环依赖

spring:
  main:
    allow-circular-references: true

3. 代码修改

启动类添加@ImportResource注解引入配置文件

@SpringBootApplication
@ImportResource({"classpath:urule-console-context.xml"})
public class RuoYiApplication {

    public static void main(String[] args) {
        System.setProperty("spring.devtools.restart.enabled", "false");
        SpringApplication application = new SpringApplication(RuoYiApplication.class);
        application.setApplicationStartup(new BufferingApplicationStartup(2048));
        application.run(args);
        System.out.println("(♥◠‿◠)ノ゙  RuoYi-Vue-Plus启动成功   ლ(´ڡ`ლ)゙");
    }

}

添加urule的servlet配置

package com.ruoyi;

import com.bstek.urule.console.URuleServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServlet;

/**
 * @author Jacky.gao
 * @since 2016年10月12日
 */
@Component
public class URuleServletRegistration {
   @Bean
   public ServletRegistrationBean<HttpServlet> registerURuleServlet(){
      return new ServletRegistrationBean<HttpServlet>(new URuleServlet(),"/urule/*");
   }
}