In some cases I have seen two different ways to specify uri in @RequestMapping
:
@RequestMapping(value="/somepath")
@RequestMapping("/somepath")
The latter is often used at class level. So, is it always legal omitting the value
attribute?
Java语言规范指出
对具有多个元素的注解类型使用单元素注解是合法的,只要一个元素被命名为值,而所有其他元素都有默认值。
由于@RequestMapping
具有已定义的属性并且所有其他属性都有默认值(空数组),因此如果您没有为注释指定任何其他属性,则value
省略名称的拼写始终是合法的:value
@RequestMapping("/somepath") // valid
@RequestMapping("/somepath", method = RequestMethod.GET) // INVALID!
因为@RequestMapping
注释值是主要属性,所以它是强制性的。
1)@RequestMapping(value="/somepath")
: 此处可以提及剩余属性,例如:method,produces
2) @RequestMapping("/somepath")
: 此处不能提及其余属性,默认情况下"/somepath"
将作为值属性。