【发布时间】:2019-02-14 01:58:11
【问题描述】:
我正在使用 spring-boot-1.5.6。我里面有一个控制器,我有大约 8 个请求映射,它有共同的标头。下面提到的标头对于控制器中的大多数方法都是强制性的,并且提到所有标头看起来很难看,有什么方法可以概括或自定义注释,以便我不想在所有方法中复制标头。
@RestController
public class RestController {
private static final Logger logger = LoggerFactory.getLogger(RestController.class);
/**
* Simply chooses a few headers, logs them and add them to model to
* showHeaders view to render to the user.
*/
@GetMapping(value="/showheaders")
public String getHeaders(
@RequestHeader(value="sample") String sample,
@RequestHeader(value="sample1") String sample1,
@RequestHeader(value="sample2") String sample2,
@RequestHeader(value="sample3") String sample3,
@RequestHeader(value="sample4") String sample4) {
logger.info("Inside getHeaders() method...");
logger.info("sample : " + sample);
logger.info("sample1 : " + sample1);
logger.info("sample2 : " + sample2);
logger.info("sample3 : " + sample3);
logger.info("sample4 : " + sample4);
}
预期:
@RestController
public class RestController {
private static final Logger logger = LoggerFactory.getLogger(RestController.class);
/**
* Simply chooses a few headers, logs them and add them to model to
* showHeaders view to render to the user.
*/
@GetMapping(value="/showheaders")
public String getHeaders(@MyHeaders headers) {
logger.info("Inside getHeaders() method...");
logger.info("sample : " + sample);
logger.info("sample1 : " + sample1);
logger.info("sample2 : " + sample2);
logger.info("sample3 : " + sample3);
logger.info("sample4 : " + sample4);
}
我知道我们可以使用 @RequestHeader Map headers,但是我想看看所有的 headers 参数名称。这样我们就可以传递方法的所有标头。使用地图没有大张旗鼓地显示任何东西。
任何提示或建议都是值得赞赏的。
【问题讨论】:
-
你试过
@RequestHeader HttpHeaders headers吗? -
@AmardeepBhowmick 感谢您的回复。我还没试过。你能分享一下链接或文档吗?这样做有什么好处?我想在 swagger 中查看标题名称
标签: java spring spring-mvc spring-boot spring-annotations