天下之事,必先处之难,而后易之。

Spring @RequestMapping定义多数组属性实现可映射多个URL地址

Spring支持同一段代码映射多个地址:

源代码

通过源代码了解到其定义里面都是数组方式,故支持多个:请求方式、请求路径、参数等。

package org.springframework.web.bind.annotation;

import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping
{
  String[] value() default {};
  
  RequestMethod[] method() default {};
  
  String[] params() default {};
  
  String[] headers() default {};
  
  String[] consumes() default {};
  
  String[] produces() default {};
}

示例代码

package com.boonya.controller;

import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import com.boonya.cache.GSMMCacheManager;

/**
 * 
 * @function 功能:代办事项控制器
 * @author PJL
 * @package com.forestar.controller
 * @filename DbsxController.java
 * @time 2019 2019年9月30日 下午2:19:36
 */
@Controller
@RequestMapping("/dbsx")
@SessionAttributes({ "userjson", "user" })
public class DbsxController extends BaseController {

	/**
	 * 获取代办各类事项统计(*.web地址CAS非登录接口)
	 * 
	 * @param req
	 * @param res
	 * @return
	 */
	@RequestMapping({"/getStatistics.do","/getStatistics.web"})
	@ResponseBody
	public Map<String, Object> getStatistics(HttpServletRequest req,
			HttpServletResponse res) {
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("result", "success");
		data.put("data",
				GSMMCacheManager.getModeByCache(GSMMCacheManager.dbtjModel));
		return data;
	}

	/**
	 * 获取代办各类事项统计CAS非登录接口
	 * 
	 * @param req
	 * @param res
	 * @return
	 *//*
	@RequestMapping("/getStatistics.web")
	@ResponseBody
	public Map<String, Object> getStatisticsWeb(HttpServletRequest req,
			HttpServletResponse res) {
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("result", "success");
		data.put("data",
				GSMMCacheManager.getModeByCache(GSMMCacheManager.dbtjModel));
		return data;
	}*/

}

注:只有了解源码的实现才能根据具体的需求合理地使用方法优化代码。

posted @ 2023-05-24 19:49  boonya  阅读(71)  评论(0)    收藏  举报  来源
我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。

我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。