小技巧
有时候程序里的一个功能在某个场景下需要,另一个场景下就不需要,这时候就可以使用一个开关,在部署的时候,通过更改配置文件开关参数值,来控制这个功能的启用或停用。
当开关较多时,可以将所有的开关可以放在一个开关类,统一管理。
配置文件
mail.switch=true
zk.notify.switch=true
Switch开关类
@Component
public class Switch {
/**
* 发邮件通知开关
**/
public static boolean mailSwitch = true;
/**
* 发zk通知开关
**/
public static boolean zkNotifySwitch = true;
@Value("${mail.switch}")
public void setMailSwitch(String mailSwitch) {
if ("true".equals(mailSwitch)) {
Switch.mailSwitch = true;
} else {
Switch.mailSwitch = false;
}
}
@Value("${zk.notify.switch}")
public void setZkNotifySwitch(String zkNotifySwitch) {
if ("true".equals(zkNotifySwitch)) {
Switch.zkNotifySwitch = true;
} else {
Switch.zkNotifySwitch = false;
}
}
}
使用开关
if (Switch.mailSwitch) {
//发邮件
} else {
// 其他动作
}
// 通用动作