项目的程序开关的设计妙用

开关:顾名思义,就是对某项东西的控制,控制其两种相反的特性,那么项目中的程序的开关是什么东西呢?

对于做后期维护的项目而言,每次的版本变更,保障不影响其他的,原有的功能的正常使用是很重要的,那么我们新增的这些程序,这些功能很有可能会影响到原有程序的正常运行或者稳定性,当遇到影响到原因程序的生产事故的时候怎么才能在最短时间内解决这个问题呢?那么项目程序的开关的感念就提出来了。

  项目程序开关是在你对于一段危险的,极容易出问题的代码之前的一个程序的逻辑的控制,比如,如果开关是打开的,那么后面的程序就继续执行,如果是关闭的,那么就不执行这段容易出问题的代码,这就是开关的作用。

  如何设计开关:

  我们可以把开关保存到数据库中,在用户登入系统的时候,去查询所有的开关,把这些信息存储到session中,当我们在执行到需要判定是否关闭的程序的时候就可以在session中获取这些开关的信息,判断开关是否是打开的。然后决定是否执行下面的程序。

  数据库比如下面:

  

  程序设计如下:

  系统登录的时候把开关信息放入到session中

  

 1             Map onoffMap = new HashMap();
 2             List onofflist_temp = executeSqlDAO.queryForList("SELECT-ON-OFF-DESCRIPTION", null);
 3             for(int i=0;i<onofflist_temp.size();i++){
 4                 OnOffDTO dto =  (OnOffDTO)onofflist_temp.get(i);
 5                 onoffMap.put(dto.getParam_name(), dto.getParam_value());
 6             }
 7
 8             //--结束新增系统开关列表代码
 9             resMap.put("onoffMap", onoffMap);
10         session.setAttribute("onoffMap", onoffMap);

使用的时候从session中拿出来

  

 1 Map onoffMap=  (Map) session.getAttribute("onoffMap");//获取到的是ArrayList ,上面的不一致,可以试试换成HashMap
 2
 3         if (onoffMap!= null) {
 4             if(onoffMap.get("req_filter").toString().trim().equals("0")){
 5                 log.debug("获取到过滤器req_filter,值为:"+onoffMap.get("req_filter").toString());
 6                 chain.doFilter(request, response);
 7                 return;
 8             }else {
 9                 log.debug("获取到过滤器req_filter,值为:"+onoffMap.get("req_filter").toString());
10             }
11         }else{
12             chain.doFilter(request, response);
13             return;
14         }
时间: 2024-10-10 20:25:03

项目的程序开关的设计妙用的相关文章

第十一周 项目四 类族的设计】

项目4 - 类族的设计] 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试: (3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类

第十一周 项目4 类族的设计(1)

项目4 - 类族的设计] 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试: (3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类

项目开发中自定义字段设计原则

在开发系统过程中,做到自定义字段策略设置,目前这种功能是很多系统的标准配置,这样子可以简化后续增加字段的难度,并对自定义字段做管理. 自定义字段功能要注意到以下几点: 1.批量规划好要自定义字段的数据表.2.对自定义字段存放的表字典表做设计3.对自定义字段做不同的属性设计4.自定义字段的扩展设计 1.明确是哪个表需要自定义字段.如果是开发一套易用的系统,做开发的时候对用到的主表做统一的自定义字段设计.这样子方便在以后的开发应用中直接操作自定义功能就能增加字段.很多程序员在初写程序的时候,增加字段

十一周 项目4 类族的设计

#include <iostream> #include <cmath> using namespace std; class Point { public: Point(double x=0,double y=0); void setPoint(double,double); double getx() { return x; } double gety() { return y; } void display(); protected: double x,y; }; class

结队项目之需求分析与原型设计

结对项目之需求分析与原型设计 结对者:3011 卢凯欣    3034 戚景晓 一.需求分析(NABCD模型) 1.N(Need,需求) l  游戏玩家可以以游客的身份游览游戏界面. l  玩家可以注册登录,在玩家的个人主页中可以看到个人战绩. l  游戏包括“单机模式”与“对战模式”,“单机模式”为玩家独自练习,“对战模式”为玩家与其他在线玩家对战. l  游戏可以创建房间,输入房间号即可与好友共玩 l  玩家解不出题时,游戏可以给出正确解法.   2.A(Approach,做法) l  对于

Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)

前言: 我打算写一系列关于Swing程序开发的文章.这是由于最近我在做一个Swing产品的开发.长期做JavaEE程序,让我有些麻木了.Swing是设计模式的典范,是一件优雅的艺术品,是一件超越时代的产品! 有机会作Swing软件的开发,让我非常有感觉! 呵呵,希望有机会能够用Java3D编写软件,那种感觉一定更棒! Java和Swing都是杰作.我这个人对别人一向很挑剔的,能够得到我由衷地赞誉,可想而知它们有多优秀了.奇怪的是,它们居然一直都无法占领桌面市场.有人说这是技术的原因.我认为这应该

打开VS2012项目“关闭程序”

在Win7-32系统上装完VS2012并使用一段时间后,当打开VS2012项目时出现如下对话框: 通过查资料得知这是由于VS2012的漏洞导致的,下载并安装完Microsoft Visual Studio 2012 更新 (KB2781514)文件patch_KB2781514.exe之后,问题得到解决.文件下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=36020 打开VS2012项目"关闭程序",布布扣,bu

Facebook揭秘HipHop项目 PHP程序大提速

隐性营养危机编程效率高是PHP语言最大的特点,但是作为脚本语言,一直存在着CPU和内存使用效率不高的问题,直到HipHop for PHP的出现.Facebook神秘的PHP项目HipHop for PHP终于揭开面纱.这个项目由一个PHP到C++的转换程序,一个重新实现的PHP运行库,和许多常用PHP扩展的重写版本构成,目的是旨在加速和优化PHP. 用Facebook官方博客(无法直接访问)上项目负责人赵海平(北大1987届遗传与分子生物专业,普林斯顿计算机科学博士)的话说,HipHop项目对

Java Web入门项目之“网络交友”的设计与实现

前言:这个小项目是我刚学习JSP时,参考"JSP程序设计"这本书写的.这里之所以说参考这本书而不是照着这本书写,主要是因为我自己完成的时候删掉了不少繁琐的写法(比如:文件上传):同时对书中容易产生SQL注入漏洞,XSS跨站脚本漏洞等地方的写法进行了修改过滤:登录页面加上了随机验证码.除此之外,还添加了文件管理功能 PS:整个项目没有特别的难点,可以分为一个个功能点实现,大神轻喷,个人认为对初学Java Web的童鞋还是有参考意义的 注:整个项目的完整源代码和sql文件我会在文末给出下载