Spring @RequestMapping值显式/隐式

时间:2013-10-04 08:13:27

标签: java spring jls

在某些情况下,我在@RequestMapping中看到了两种指定uri的方法:

  1. @RequestMapping(value="/somepath")

  2. @RequestMapping("/somepath")

  3. 后者通常用于班级。那么,是否总是合法省略value属性?

2 个答案:

答案 0 :(得分:1)

Java Language Spec

  

对具有多个元素的注释类型使用单元素注释是合法的,只要一个元素命名为value,并且所有其他元素都具有默认值。

由于@RequestMapping具有已定义的value属性,并且所有其他属性都具有默认值(空数组),因此如果未指定,则省略拼写名称value始终是合法的注释的任何其他属性:

@RequestMapping("/somepath") // valid
@RequestMapping("/somepath",  method = RequestMethod.GET) // INVALID!

答案 1 :(得分:0)

对于@RequestMapping注释是主要属性,它是必需的。

1)@RequestMapping(value="/somepath"): 在这里你可以提到剩下的属性,例如方法,产生 2) @RequestMapping("/somepath"): 在这里,您无法提及其余属性,因为默认情况下"/somepath"将被视为值属性。

Check this