系统配置
基本信息请查看 .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());