Allow @ResponseBody on the type level
This change enables having @ResponseBody on the type-level in which case it inherited and does not need to be added on the method level. For added convenience, there is also a new @RestController annotation, a meta-annotation in turn annotated with @Controller and @ResponseBody. Classes with the new annotation do not need to have @ResponseBody declared on the method level as it is inherited. Issue: SPR-10814master
parent
172a0b9f5d
commit
82a26024ae
5 changed files with 135 additions and 21 deletions
@ -0,0 +1,45 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2012 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.web.bind.annotation; |
||||||
|
|
||||||
|
import java.lang.annotation.Documented; |
||||||
|
import java.lang.annotation.ElementType; |
||||||
|
import java.lang.annotation.Retention; |
||||||
|
import java.lang.annotation.RetentionPolicy; |
||||||
|
import java.lang.annotation.Target; |
||||||
|
|
||||||
|
import org.springframework.stereotype.Controller; |
||||||
|
|
||||||
|
/** |
||||||
|
* A convenience annotation that is itself annotated with {@link Controller @Controller} |
||||||
|
* and {@link ResponseBody @ResponseBody}. |
||||||
|
* <p> |
||||||
|
* Types that carry this annotation are treated as |
||||||
|
* controllers where {@link RequestMapping @RequestMapping} methods assume |
||||||
|
* {@link ResponseBody @ResponseBody} semantics by default. |
||||||
|
* |
||||||
|
* @author Rossen Stoyanchev |
||||||
|
* @since 4.0 |
||||||
|
*/ |
||||||
|
@Target(ElementType.TYPE) |
||||||
|
@Retention(RetentionPolicy.RUNTIME) |
||||||
|
@Documented |
||||||
|
@Controller |
||||||
|
@ResponseBody |
||||||
|
public @interface RestController { |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue