Skip to content

系统配置

基本信息请查看 .NET 版系统配置说明,下面仅对配置定义和使用作出介绍。

配置定义

配置类完全由后端定义,前端无法添加。编写一个承载配置项的类,然后添加相应注解即可。

java
@ConfigData(group = "网络设置", code = "test_cors", name = "跨域设置")
public class TestCorsConfig {
    @ConfigItem(name = "允许响应头")
    private String exposeHeader = "";

    @ConfigItem(name = "允许请求方式")
    private List<String> allowMethods = new ArrayList<>();

    @ConfigItem(name = "启用")
    private Boolean enabled = false;
    // 省略 get/set 方法
}

提示

配置类还用来生成配置模板,因此推荐为每个配置项添加适当的默认值。这样不仅可以清晰传达数据类型,也可以在配置不存在时提供默认内容。

在上例中,我们声明了一个“跨域设置”的配置类,包含“允许响应头”、“允许请求方式”、“启用状态”三个配置项。 其关键在于两个注解的使用:

@ConfigData

  • 说明:声明配置类。
  • 参数:
    • group {string} 分组,用于多个配置类的分组归类。仅在前端显示用。
    • code {string} 配置类的唯一标识,不允许重复。
    • name {string} 配置类描述,仅显示用。
    • publicUse {bool} 是否公开使用,即能否在前端通过 API 获取。默认为 false。

@ConfigItem

  • 说明:声明配置项。
  • 参数:
    • name {string} 中文名称,用于在新增编辑界面生成配置项说明。
    • description {string} 描述信息,用于在新增编辑界面生成配置项说明。

配置获取

API

GET /api/sys-configs/value/{code}

  • 说明:获取指定配置信息。
  • 参数:
    • code {string} 配置类的唯一标识
  • 返回:配置数据。

注意

要在前端获取配置信息,必须在配置定义中声明 publicUse 为 true。需要注意安全风险,敏感配置不要在前端获取。

服务方法

<T> T getConfig(Class<T> clazz)

  • 说明:获取配置。
  • 参数:
    • clazz {Class} 配置类
  • 返回:配置对象
java
@Autowired
private SysConfigService service;

CorsConfig setting = service.getConfig(CorsConfig.class);
System.out.println(setting.getAllowOrigins());