# 配置应用

# 配置文件

  • 后端配置文件: /api/src/main/resources/application.yml/api/src/main/resources/web/config.yml
  • 前端配置文件: /ui/public/config.js/ui/src/setting.js

# 主数据源配置

# 1.h2数据库

# application.yml
spring:
  datasource:
    driver-class-name: "org.h2.Driver"
    url: "jdbc:h2:file:./dev;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"
    username: "changeit"
    password: "changeit"
  h2:
    console:
      enabled: true  # 配置后支持打开 h2 管理后台
      settings:
        web-allow-others: true

# 2.MySQL数据库

# application.yml
spring:
  datasource:
    driver-class-name: "com.mysql.cj.jdbc.Driver"
    url: "jdbc:mysql://ip:port/db_schema" # 标准的 JDBC 参数
    username: "changeit"
    password: "changeit"

# 3.Oracle数据库

  • 修改Spring数据库连接配置:application.yml
spring:
  datasource:
    driver-class-name: "oracle.jdbc.OracleDriver"
    url: "jdbc:oracle:thin:@ip:port:db_schema" # 标准的 JDBC 参数
    username: "changeit"
    password: "changeit"
  • 补充依赖:pom.xml
<!-- Oracle驱动包依赖 -->
<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc8</artifactId>
  <scope>runtime</scope>
</dependency>
<!-- Oracle本地化包依赖,更好地处理各种语言和字符集 -->
<dependency>
  <groupId>com.oracle.database.nls</groupId>
  <artifactId>orai18n</artifactId>
  <scope>runtime</scope>
</dependency>

# 4.达梦数据库

# application.yml
spring:
  datasource:
    driver-class-name: "dm.jdbc.driver.DmDriver"
    url: "jdbc:dm://ip:port?SCHEMA=db_schema" # 标准的 JDBC 参数
    username: "changeit"
    password: "changeit"

# 5.Postgresql数据库

spring:
  datasource:
    driver-class-name: "org.postgresql.Driver"
    url: "jdbc:postgresql://ip:port/db_catalog?currentSchema=db_schema" # 标准的 JDBC 参数
    username: "changeit"
    password: "changeit"

# 6.Hubble数据库

基于 postgresql 协议,使用方式参考 postgresql 数据库配置。

# 多数据源配置

框架拓展了数据源的配置,支持在连接主数据源的同时创建与其他数据库的连接。

fly:
  data-sources:
    sampledb:
      driver-class-name: "com.mysql.cj.jdbc.Driver"
      url: "jdbc:mysql://ip:port/db_schema" # 标准的 JDBC 参数
      username: "changeit"
      password: "changeit"

# 数据源有效性校验

# application.yml
spring:
  datasource:
    driver-class-name: "com.mysql.cj.jdbc.Driver"
    url: "jdbc:mysql://ip:port/db_schema" # 标准的 JDBC 参数
    username: "changeit"
    password: "changeit"
    # HikariCP 配置
    hikari:
      connection-test-query: "SELECT 1" # 数据库连接有效性校验语句,不同数据库语句不同
      validation-query-timeout: 5000 # 单位毫秒

更多关于数据源的配置,请参考Spring Boot 官方文档。

# 身份认证配置

# application.yml
oauth2:
  client-id: "changeit"
  client-secret: "changeit"
  server-url: "changeit"  # 认证服务内部地址
  user-info-uri: "${oauth2.server-url}/oauth2/userinfo"
  iam-api: "changeit"
  version: 5 # IAM版本,不设置 默认对接 v4 版本
  authorization-code:
    token-uri: "/token"
  # indirect-* 是指外网(间接)地址,默认指向内部地址 
  indirect-server-url: "${oauth2.server-url}"
  indirect-user-info-uri: "${oauth2.indirect-server-url}/oauth2/userinfo"
  indirect-iam-api: "${oauth2.iam-api}"
  fuse-console: "changeit" # IAM 管理控制台地址

# 接入IAM统一授权配置

# application.yml
app:
  dengine:
    security:
      mode: "IAM" # 设置为 IAM 模式,开启统一授权管理,开启后将不会在本地生成 sec_user, sec_role, sec_authority_pack 等表

fly:
  migration:
    enabled: false # 关闭数据库迁移功能
    ddlAuto: false # 默认是自动创建表结构,关闭后不会自动创建表结构

# 文件存储配置

这里的文件存储是应用内的存储。

# application.yml
file:
  dir: "file:./files" # 文件存储目录
  upload: "/$files/upload" # 上传接口
  download: "/$files/download" # 下载接口

# 配置匿名HTTP请求

# application.yml
fly:
  security:
    ignored-urls:  # 这里配置匿名访问的接口,可以使用通配符类似 /api/user/**
      - "/api_path/"

# config.json加密输出

# application.yml
fly:
  web:
    config:
      encrypt:
        enabled: true # 开启config.json加密

# 数据库管理配置

# application.yml
fly:
  migration:
    enabled: true # 数据库的版本管理,开启后数据库将会自动执行升级脚本(resources/**.sql)和自动执行ddl脚本(元数据实体或者java实体产生的动态脚本)
    ddlAuto: false # 单独控制ddl脚本的执行,开启后会自动执行ddl脚本(元数据实体或者java实体产生的动态脚本),关闭则不会对数据库表结构进行操作

以上配置开启后,仅仅在工程启动的时候执行。

# Web集成配置

前端框架会发起 config.json 的请求,请求返回的结果来自于后端 config.yml 里的配置,前端读取到后会放到前端缓存起来。

# config.yml
login: true #
apiBaseUrl: "${server.servlet.context-path}" # 提供给前端用的基础地址,所有api都经过它,需要拼接上下文
orchServerBaseUrl: "${server.servlet.context-path}/serverless"  # 函数编排用到的基础地址
resourceBaseUrl: "${server.servlet.context-path}"  # 素材文件资源的基础地址
serviceBaseUrl: "${server.servlet.context-path}/service"  # 查询能够使用的第三方数据源的基础地址,本质返回的是 app/services.json 里面的内容
authorizeUrl: "${server.servlet.context-path}/$perms" # 权限接口路径
orchBaseUrl: "/orchestration" #
onlineide: "https://lowcode.bingosoft.net/cloud/ide/index.html" # 可忽略,公共IDE的地址
service.menu.url: "/menu"  # 获取菜单数据的基础地址
oauth2.clientId: "${oauth2.client-id}"  # IAM SSO 的clientId
oauth2.serverUrl: "${oauth2.server-url}" # IAM SSO 的 serverUrl
oauth2.userInfo: "${oauth2.user-info-uri}" # IAM SSO获取用户信息的基础地址
oauth2.iamapi: "${oauth2.iam-api}" # IAM API的基础地址
oauth2.iamVersion: "${oauth2.version}" # IAM的版本
file.upload: "${server.servlet.context-path}${file.upload}" # 文件上传地址
file.download: "${server.servlet.context-path}${file.download}" # 文件上传地址

# 如果有内外网的场景,以下配置需要指向外网地址
# oauth2.serverUrl: "${oauth2.indirect-server-url}"
# oauth2.userInfo: "${oauth2.indirect-user-info-uri}"
# oauth2.iamapi: "${oauth2.indirect-iam-api}"

# 元数据配置

通常情况下使用默认配置即可

# application.yml
app:
  dengine:
    file:
      dir: "./app/" # 元数据存储目录
    writing:
      backup: false  # 默认 false,开启后对于删除的文件会自动备份
      backup-dir: "./app-backup" # 备份目录
      enabled: false # 是否启用元数据写入接口,建议生产部署时关闭
      ddlAuto: true # 开启后,从IDE侧进行的实体操作,能够自动生成数据库表结构、关系,索引等
    market:
      enabled: true # 开启后可以使用物料市场
      url: "https://lowcode.bingosoft.net/developer/" # 物料市场地址
    # 补充该配置后,对应 config.yml 里面的相关 URL 路径会自动生成完整的 URL 路径(http 开头)
    requestserverwebconfigs: "apiBaseUrl,orchServerBaseUrl,serviceBaseUrl,authorizeUrl,resourceBaseUrl,file.upload,file.download"
    # 导入实体后自动生成API接口,该配置在 1.8.4 版本支持
    import-entity:
      generate-apis: true
    # 安全配置
    security:
      sync:
        enabled: false  # 设置为true后,用户管理、组织管理支持从IAM进行同步(页面出现同步按钮) 1.8.16 + 版本支持

# 多租户配置

# application.yml
app:
  dengine:
    multi-tenant:
      enabled: true # 开启多租户

# 查询接口分页配置

# application.yml
# 以下配置针对【实体的列表查询接口】 和 【基于SQL的分页查询接口】 接口有效;
spring:
  data:
    web:
      pageable:
        default-page-size: 20 # spring框架默认分页数
        max-page-size: 2000 # spring框架最大分页数(避免出现过大数据量查询,可设置更小的值)

# IDE配置

# config.yml
ide:
  docUrl: "${doc-url}" # IDE 中链接到文档中心的地址

# 工作流配置

# application.yml
services:
  workflow:
    appId: changeit  # 工作流应用ID, 如果不配置,默认使用 oauth2.clientId
    url: changeit  # 工作流运行时服务地址 http://ip:port/wf-runtime/
    autoGeneratePages: true # 在IDE中支持 自动生成审批页面 的配置,实验属性 1.8.4 版本支持
    query:
      url: changeit  # 工作流查询服务地址 http://ip:port/wf-query/
    console:
      url: changeit  # 工作流控制台服务地址 http://ip:port/workflow/

# 微应用配置

# application.yml
app:
  dengine:
    micro-app:
      enabled: true
      apps:
        - name: "app-1" # 可自定义,用于标识应用1
          base-url: "http://ip:port/app-1/"  # 应用1的根路径
          service-url: "http://ip:port/app-1/service"  # 应用1的 /service 路径
          config-url: "http://ip:port/app-1/config.json"  # 应用1的 /config.json 路径
          option-set-url: "http://ip:port/app-1/_meta/dict"  # 应用1的 /_meta/dict 路径

顶部