springmvc Controller对app客户端进行请求版本控制

/**
 * @author tandg
 *
 */
@Controller
public class MainController extends BaseController {
 
 Logger log = Logger.getLogger(MainController.class);
 
 @Autowired
 private UserService userService;
 
 @RequestMapping(value="/login.do")
 public String Login(@RequestParam("v") String version) {
  Method m = null;
  try {
   String currMethodName = Thread.currentThread().getStackTrace()[1].getMethodName();//获取当前请求的方法名
   m = getVersionMethod(currMethodName, version);
   return (String) m.invoke(this);
  } catch (Exception ex) {
   log.error("Abnormal request interface :"+ex.getMessage(), ex);
   JSONObject result = new JSONObject();
   result.put("Fail", "Abnormal request interface :"+ex.getMessage());
   return result.toString();
  }
 }
 
 /**
   * 最新版本登录方法
   */
 public String Login() {
  /**
   * 处理登录业务逻辑代码...
   */
  return null;
 }
 /**
   * 旧版本登录方法
   */
 public String Login1_0() {
  /**
   * 处理登录业务逻辑代码...
   */
  return null;
 }
 
 /**
  * 处理请求参数
  */
 public Map<String, Object> getParamMap(HttpServletRequest req) {
  Map paramMap = new HashMap();
  paramMap.putAll(req.getParameterMap());
  return paramMap;
 }
 
 /**
  * controller 版本选择
  * 
  * @param currMethodName
  * @param version
  * @return
  * @throws SecurityException
  * @throws NoSuchMethodException
  */
 public Method getVersionMethod(String currMethodName, String version)
   throws SecurityException, NoSuchMethodException {
  Class c = this.getClass();
  Method m = null;
  //比对版本,如v=1.0
  if (version.equalsIgnoreCase(ServerConfig.VERSION)) {
   m = c.getMethod(currMethodName);
  } else {
   m = c.getMethod(currMethodName + version);
  }
  return m;
 }
}

转载于:https://my.oschina.net/evanNmin/blog/500545

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值