1. 自定义配置
快速实现基本配置管理业务,例如:系统设置、功能设置、上传设置等,这些配置的参数通常 ConfigUtil
工具类可以很方便在业务代码中使用。
通过代码生成器设计好配置表单
在代码中通过 ConfigUtil
读取对应配置值。
[!tip] 企业版本以上支持从缓存读取
1.1. ConfigUtil工具类
提供多种 get 方法获取配置中的值,下面列出 configutil
中的方法代码片段
1.1.1. getString
/**
* 返回字符串类型的数据
* @param configName 配置名称 对应自定义配置列表上的 配置名称 字段
* @param key 对应代码生成器中的字段名称 注意:名称是驼峰式
* @return 无匹配返回空
*/
public static String getString(String configName,String key) {
...
}
/**
* 返回字符串类型的数据
* @param configName 配置名称 对应自定义配置列表上的 配置名称 字段
* @param key 对应代码生成器中的字段名称 注意:名称是驼峰式
* @param defaultValue 默认值,如果配置中没有值,会返回默认值
* @return 无匹配返回默认值
*/
public static String getString(String configName,String key, String defaultValue) {
...
}
1.1.2. getInt
/**
* 返回整型类型的数据
* @param configName 配置名称 对应自定义配置列表上的 配置名称 字段
* @param key 对应代码生成器中的字段名称 注意:名称是驼峰式
* @return 无匹配返回0
*/
public static int getInt(String configName,String key) {
...
}
/**
* 返回整型类型的数据
* @param configName 配置名称 对应自定义配置列表上的 配置名称 字段
* @param key 对应代码生成器中的字段名称 注意:名称是驼峰式
* @param defaultValue 默认值,如果配置中没有值,会返回默认值
* @return 无匹配返回默认值
*/
public static int getInt(String configName,String key,int defaultValue) {
...
}
1.1.3. getObject
/**
* 如果不确定返回类型,可以使用 getObject
* @param configName 配置名称 对应自定义配置列表上的 配置名称 字段
* @param key 对应代码生成器中的字段名称 注意:名称是驼峰式
* @return 无匹配返回null
*/
public static Object getObject(String configName,String key) {
...
}
1.1.4. getMap
* 获取configName完整配置数据,通过一次性获取所有配置,避免重复传递 configName
* @param configName 配置名称 对应自定义配置列表上的 配置名称 字段
* @return map
*/
public static Map getMap(String configName) {
...
}
1.2. 范例(后端)
在业务中可能会遇到这样的场景,需要能控制某个功能是否启用,或者需要控制后台管理员可登录的时间范围
例如下面是政务版本 ManagerLoginCredentialsMatcher.java
代码片段
/**
* 锁住时间判断, 账号锁住超时则可以登录,超时时间在后台“安全设置”菜单中设置
* @param date 最后登录时间
* @return false 未超时,不可登录;true 超时,可以继续登录
*/
private boolean isLockLastLoginTime(Date date){
...
//ConfigUtil.getInt("安全设置","timeout")
Date newDate = DateUtil.offsetHour(date, ConfigUtil.getInt("安全设置","timeOut"));
...
}
基本使用步骤 1.在代码生成器中制作好模型导入至后台自定义配置 2.给配置初始化参数 3.使用ConfigUtil类取值时,注意所取参数以及配置名称需要一致 4.例如下面是以 该自定义配置 来控制静态化主页是否可用的范例代码
[!tip] 需要注意字段名!!! 假设 代码生成器的字段名下划线命名 例如:
time_out
,ConfigUtil
对应的 key 参数 为驼峰命名,例如:timeOut
,非下划线定义方式与代码生成器字段命名一致。
1.3. ms.mdiy.config 方法
/**
* 获取自定义配置
* @param configName:配置名称
* @paramk key:配置的key值(可选),key == null 可以获取所有的配置
* @param isSystem true 后台调用会拼接后台地址 false前台调用
*/
function config(configName, key,isSystem)
1.4. 范例(前端)
以下为企业版 login.ftl 代码片段
getuiConfig: function () {
var that = this;
ms.mdiy.config("后台UI配置",'uiLoginSlogin').then(function (res){
that.uiConfig.uiLoginSlogin = JSON.parse(res.data)[0].url
})
ms.mdiy.config("后台UI配置",'uiLoginBg').then(function (res){
that.uiConfig.uiLoginBg = JSON.parse(res.data)[0].url
})
// 以上方法可以使用一次调用解决
ms.mdiy.config("后台UI配置",'',true).then(function (res){
that.uiConfig = res.data
that.uiConfig.uiLogo = JSON.parse(res.data.uiLogo)[0].url
})
},
[!tip] 需要注意ms方法使用的异步方法,建议在配置加载完毕的时候进行调用