全栈低码设计开源框架 json-script-rule 配置说明

配置说明

简述

本篇主要讲述spring的application文件的配置,与model包类型,配置文件也有一个相对应的类,它就是edi.rule.config.JSRuleProperties

用例

spring:
  profiles:
    #active: mysql
edi:
  rule:
    locations: test.business.po
    #processor: test.myrule.JSRuleDBProcessor
    message: /rule-message/chinese.properties
    mybatis: /META-INF/rule-mybatis-config.xml
    http:
      #connectTimeout: 10000
      readTimeout: 10000
      headArgs: qweewq
      headSign: asddsa
      #engineControllerUrl: http://localhost:8012/api/json/script
    open:
      #replenishColumns: true
    #close:
      #engineController: true
      models: test.rule.JSRuleGetCustomModel
    config:
      dateFormat: yyyy-MM-dd HH:mm:ss,yyyy/MM/dd HH:mm:ss
      calculateScale: 2
      #calculateMode: 2
    #security:
      type: sm2
      publicKey: 04a14dd8d62e90d5cfd7b59ce89e346e0e7def05281361f7ef47676c1e534ca85b3d88839b02e9b57b2818f46beeea4eb88a3e5abe429d0e866ddea9c8c7756f7a
      privateKey: 00f8d5d53f123f1a001403a27acb16b8408dff48f249b2ed7d2429b3394628bc36
      #type: rsa
      #publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+h70Xxu9L25Sw8M9nyw4g8d6YLD56RmiCrU4rnGamS9iESl69eSBBF2IR5gN+kBPSiQrq84JBLJ8K79GGrTKqoLjV816khut29tl8VtfUo+YZ8So4of2cGw5McvQ4j/JB4bjsohSjZWBBTCLPbAeu4QoLyvE1jVLleRyAUJxrQwIDAQAB
      #privateKey: MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAL6HvRfG70vblLDwz2fLDiDx3pgsPnpGaIKtTiucZqZL2IRKXr15IEEXYhHmA36QE9KJCurzgkEsnwrv0YatMqqguNXzXqSG63b22XxW19Sj5hnxKjih/ZwbDkxy9DiP8kHhuOyiFKNlYEFMIs9sB67hCgvK8TWNUuV5HIBQnGtDAgMBAAECgYA5p4qVYNn1qv8OIfipEF14o6g3hR/s0VR7wqSmdr/rL4VX1sdfb4FOoRxIjUFecYvGCDk5CrHONgn0fch6B/wN9qBk1Yjs/P0m74tVIL9tITm0l1YFkbU/mmaOQpCPA+qD6Y3EaGmvQfusq3TVKJzbJLuW6g23/NNiLk5/2BStKQJBAPOxDnvnEeMbEsNuqzsDlDVsBXlP+SsFZ88ZyIarxg3LWX04nW/WJ40A1iq7V79lOxJrnibTYz+Okbp+KGiRo7kCQQDIJ02IDtSzmYEdKmFrzfrHyCKW/lKZV2pOFUGdl/OIINsVL/9+yrPzcXnRp2I6JzCXDnsYu4OrZVGPgXVF1jzbAkEA5o7syjNLjBgQP5DUNmhjb8u8vhL5Bkf9+EZHn4qjPmfXSg8nfSkbkF9rQVCwa2fmZL4nCkrTSs2jeNNlfdHVGQJBAKRiazHghF7RJxKOGR8SN/JW89mxHKOmAMAKgy5seu4Flglrt1oqHutE+njvESSTxTt7ACyK7RQajYbgGzH1R1sCQQCylpMLxwL8PIPdlC5r5mwyHy5TsgkaU8Ft7ZBxFLu8cA0XyKfwNto2RrfVpPGvwc75KmOPQYS7fPKY7enYxRt0
      signKey: vvv
    poi:
      excel:
        importFilterEmptyRow: true

下面是application-mysql.yml

edi:
  rule:
    database: mysql
说明

application-mysql.yml会覆盖掉application.yml已存在的配置

  • locations:用于设置实体类的根路径,该属性可通过扩展类JSRuleDefaultExtend进行扩展,自3.2.4版本之后允许设置有多个路径,如果多个根路径下有相同的类名,则在使用json时应使用类全限定名
  • processor:用于设置自定义处理类,可通过直接在类上加@Component注解来替代配置该属性
  • database:目前支持的数据库分别是postgresql、mysql、oracle,kingbase,可选择对应的数据库类型,默认为mysql
  • mybatis:框架内置mybatis配置文件的路径,根路径位于resources文件夹下,自定义mybatis-config.xml文件可覆盖框架内置的配置文件,你只需要将自定义文件放在resources路径下,并通过该属性来指向此文件的位置即可,文件内容可参考下面的

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org/DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
<!--        <setting name="logImpl" value="STDOUT_LOGGING"/>-->
        <setting name="callSettersOnNulls" value="true"/>
    </settings>
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <property name="pageSizeZero" value="true"/>
        </plugin>
    </plugins>
</configuration>

它看上去和我们平时使用的mybatis配置文件一模一样,甚至包括pageHelper插件,只不过这里配置的是框架内置的mybatis

  • message:用于配制国际化文件,应用框架内置两种语言文件,分别为/rule-message/english.properties以及/rule-message/chinese.properties,默认为english,如果需要自定义日志的内容或语言可将后缀名为properties的文件放入resources目录下,并以/符号开头配置该属性指向自定义的国际化文件
  • dataSourceBean:针对个别特殊情况下多数据源时指定其中一个数据源的场景,该值为最终指定的DataSource的spring bean的名称(4.0版本开始支持)
  • open.superProp:配置实体类时如果实体类有父类,则是否将父类的字段一起加入到缓存中,默认为false
  • open.replenishColumns:该配置只针对mysql数据库,它表示是否补全缺失的列为null值,mysql批量插入时如果行数据之间的列数不一致则将会导致数据库报错,配置为true则会保证数据列的一致性,缺失的列会以null的形式加入到行数据中,默认为false
  • close.engineController:是否关闭内置Controller,默认false,表示开启,该属性可在自定义Controller后进行关闭,避免产生多个处理请求的接口
  • close.models:用于禁用某些插件,当你认为某些插件不需要使用时可通过该属性来禁用,只需填入插件的全限定类名即可,多个插件可以用逗号进行分割,如下

edi:
  rule:
    close:
      models: test.business.rule.model.JSRuleGetCustomModel,edi.rule.model.JSRuleGet
  • config.dateFormat:用于配置日期格式,凡是日期格式的字符串会在后端自动转化为日期类型进行处理,这包括插入数据时,查询日期区间时,以及断言里判断时间范围等,配置多个日期格式时需用逗号分割开,未配置该属性时则采用默认格式,系统默认日期格式如下

dateFormat: yyyy-MM-dd,yyyy-MM-dd HH:mm:ss
  • config.calculateScale:使用add插件的calculate属性进行除法计算时默认保留的小数位
  • config.calculateMode:使用add插件的calculate属性进行除法计算时默认的舍入方案,默认四舍五入
  • http.connectTimeout:连接超时配置,参考SimpleClientHttpRequestFactory
  • http.readTimeout:读取超时配置,参考SimpleClientHttpRequestFactory
  • http.headSign:开启安全模式后请求时应携带签名文本,该属性为request请求头中签名文本的属性名,如果security.type属性不为空并且此次请求为request请求,则此时该属性不能为空
  • http.headArgs:该属性为request请求头中全局参数的属性名,它是一个可转化为JSRuleGlobalArgs对象的json字符串,其中的sign属性代表签名文本,它可代替http.headSign的配置
  • poi.excel.importFilterEmptyRow:在使用导入插件时是否启用过滤器,默认为false,过滤器只会对空的数据行进行过滤
  • security(since 4.1):安全模式,目前框架内置的安全模式分为两种,一种是sm2,另一种是rsa
  • security.type(since 4.1):安全模式类型,该属性存在时则表示启动安全模式,可参考JSRuleSecurityEnum枚举,值为sm2时表示启用sm2安全模式
  • security.publicKey(since 4.1):公钥,当security.type开启安全模式时有效,公钥和私钥任何一个为空时都将重新自动生成秘钥对儿
  • security.privateKey(since 4.1):私钥,当security.type开启安全模式时有效,公钥和私钥任何一个为空时都将重新自动生成秘钥对儿
  • security.signKey(since 4.1):开启安全模式后如果还需要后台配置签名秘钥用于加盐处理,此时可配置该属性,该属性可以为空,但不建议为空。验签的过程首先会将json字符串进行加密,之后用加密后的密文再与该签名秘钥组合,最后再与签名文本进行对比验证

动态定义

动态定义是指请求时在json中临时定义的,并能够临时更改原有框架配置的一种手段,可以参考JSRuleDefinition这个类来查看都有哪些属性可以定义,仅在当前请求时有效。除了viewParams和fieldsDesensitized属性,这里新增加了一个config属性,它对应的是系统可配置的程序参数,该属性后续可能会加入更多可定义的动态配置,这里先以如下几个参数进行说明

  • @calculateScale:使用add插件并进行除法运算时保留的小数位,int类型
  • @calculateMode:使用add插件并进行除法运算时小数位的舍入方案,默认为四舍五入
    下面展示一个例子

"define":{
    "fd":{"imgUrl":{"regex":"[1-9]+","replaced":"!"}},
    "vp":{"CategoryView":["#$length(kkk)","4"]},
    "config":{"calculateScale":4,"calculateMode":4}
}

上面的fd是脱敏配置(具体可参考脱敏配置篇章),vp是视图配置(具体可参考视图配置篇章),config对应的是edi.rule.config

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九天流云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值